第一步:新建表 tb_test
新建表
create table tb_test(
id int
);
插入数据
insert into tb_test values ('1');
insert into tb_test values ('2');
insert into tb_test values ('3');
第二步:定义游标循环 存储过程
create procedure sp_test()
BEGIN
declare tmp int default 0;
declare sum int default 0;
declare done int default -1;
/* 声明游标 */
declare myCursor cursor for select id from tb_test;
/* 当游标到达尾部时,mysql自动设置done=1 */
declare continue handler for not found set done=1;
/* 打开游标 */
open myCursor;
/* 循环开始 */
myLoop: LOOP
/* 移动游标并赋值 */
fetch myCursor into tmp;
if done = 1 then
leave myLoop;
end if;
/* do something */
set sum = sum + tmp;
/* 循环结束 */
end loop myLoop;
insert into tb_test values(sum);
/* 关闭游标 */
close myCursor;
END
第三步:使用游标 测试
调用存储过程
call sp_test();
查询结果集
select * from tb_test();