频道栏目
首页 > 资讯 > 其他综合 > 正文

利用navicat创建存储过程、触发器和使用游标的简单实例

17-06-13        来源:[db:作者]  
收藏   我要投稿

利用navicat创建存储过程、触发器和使用游标的简单实例。

1、建表

首先先建两张表(users表和number表),具体设计如下图:

 

2、存储过程

写一个存储过程,往users表中插入数据,创建过程如下:

代码如下:

[sql] view plain copy print?
BEGIN #Routine body goes here…
declare n bigint; set n = 201121029684;
while n <= 201121029694 do
insert into users(student_ID) values(n); set n = n + 1;
end while; END[sql] view plain copy print?
truncate table users;[sql] view plain copy print?
begin update number
set num = (select count(*) from users) ; end[sql] view plain copy print?
BEGIN #Routine body goes here…
declare tmp bigint default 0;
declare cur CURSOR FOR SELECT student_ID FROM users; – 定义游标 /*
02000 发生下述异常之一: SELECT INTO 语句或 INSERT 语句的子查询的结果为空表。
在搜索的 UPDATE 或 DELETE 语句内标识的行数为零。 在 FETCH 语句中引用的游标位置处于结果表最后一行之后。
 
*/ declare CONTINUE HANDLER FOR SQLSTATE ‘02000’ set tmp = 0;
 
OPEN cur; – 打开游标 FETCH cur INTO tmp; – 游标向下走一步
 
WHILE(tmp != 0) DO
select tmp; – 将tmp打印出来,会发现tmp就像一个指针,一开始指向第一行,游标走一步,则指向下一行记录
UPDATE users
SET student_ID = tmp + 100 WHERE student_ID = tmp;
FETCH cur INTO tmp; END WHILE;
CLOSE cur; – 关闭游标
END
相关TAG标签
上一篇:ASA external 外部登录教程
下一篇:Mysql高级查询-----汇总和分组数据
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站