探讨mysql的游标cursor
以下是我的做法步骤代码:
//新建动物表
create table dw(
dw_id int,
dw_name varchar(20),
dw_num varchar(10)
);
//插入几条数据
insert into dw values(1,’mao’,’10’)$
insert into dw values(2,’gou’,’20’)$
insert into dw values(3,’ping’,’30’)$
//创建存储过程,并声明游标,循环查询出一个表的所有数据
create procedure p1()
begin
declare a int default 1; –定义一个循环条件
declare id int; –用来装查询出来的动物id
declare name varchar(20); –用来装查询出来动物名字
declare num varchar(10);
declare getdw cursor for select dw_id,dw_name,dw_num from dw;
declare exit handler for NOT FOUND set a:=0; –exit–>是当条件满足了就不执行下面的代码,continue反过来。这里的意思是,当表没有数据了,就会触发
open getdw;
repeat
fetch getdw into id,name,num; –把查询出来的值赋给这些变量
select id,name,num;
until a=0 end repeat;
close getdw;
end$
测试p1,如图:
已经成功的查询出所有的数据。以上必须要去掉注释,否则会出错。