一个含有游标的存储过程

BEGIN
#Routine body goes here...
declare tmp0 VARCHAR(1000);
declare tmp1 VARCHAR(1000);
declare done int default -1; -- 用于控制循环是否结束

/* 声明游标 */
declare myCursor cursor for select label,number from label_to_number_table;

/* 当游标到达尾部时,mysql自动设置done=1 */
declare continue handler for not found set done=1;

/* 打开游标 */
open myCursor;

/* 循环开始 */
myLoop: LOOP

/* 移动游标并赋值 */
fetch myCursor into tmp0,tmp1;

-- 游标到达尾部,退出循环
if done = 1 then
leave myLoop;
end if;

/* do something */
-- 循环输出信息
select tmp0,tmp1 ;

-- 可以加入insert,update等语句

/* 循环结束 */
end loop myLoop;

/* 关闭游标 */
close myCursor;

END

可以点击运行

看到一系列的运行结果:

调用存储过程的方法:

posted on 2019-05-24 09:36  停在夯格瑞停在服了许  阅读(199)  评论(0)    收藏  举报

导航