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