第一步:新建表 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();