如何使用mysql游标
这篇文章主要为大家展示了如何使用mysql游标,内容简而易懂,希望大家可以学习一下,学习完之后肯定会有收获的,下面让小编带大家一起来看看吧。
什么是游标:
创建游标:语法:1.定义游标:declare 游标名 cursor for select语句;2.打开游标:open 游标名;获取结果:fetch 游标名 into 变量名[,变量名];关闭游标:close 游标名;
create procedure p1()begin declare id int; declare name varchar(15); -- 声明游标 declare mc cursor for select * from class; -- 打开游标 open mc; -- 获取结果 fetch mc into id,name; -- 这里是为了显示获取结果 select id,name; -- 关闭游标 close mc; end;
create procedure p2()begin declare id int; declare name varchar(15); -- 声明游标 declare mc cursor for select * from class; -- 打开游标 open mc; -- 获取结果 loop -- 循环,将表的内容都转移到class2中 fetch mc into id,name; -- 这里是为了显示获取结果 insert into class2 values(id,name); -- 关闭游标 end loop; close mc; end;
使用游标:游标每一次fetch都是获取一行结果,可以使用变量来获取fetch到的每一列的值
create procedure p2()begin declare id int; declare name varchar(15); -- 声明游标 declare mc cursor for select * from class; -- 打开游标 open mc; -- 获取结果 loop -- 循环,将表的内容都转移到class2中 fetch mc into id,name; -- 这里是为了显示获取结果 insert into class2 values(id,name); -- 关闭游标 end loop; close mc; end;
上面的代码会有一个报错,不断循环的话,始终会达到表的末尾,到了末尾就无法继续fetch,一般来说都要避免报错,到了末尾前会有一个mysql定义的
create procedure p3()begin declare id int; declare name varchar(15); declare flag int default 0; -- 声明游标 declare mc cursor for select * from class; declare continue handler for not found set flag = 1; -- 打开游标 open mc; -- 获取结果 l2:loop fetch mc into id,name; if flag=1 then -- 当无法fetch会触发handler continue leave l2; end if; -- 这里是为了显示获取结果 insert into class2 values(id,name); -- 关闭游标 end loop; close mc; end;call p3();-- 不报错select * from class2;
以上就是关于如何使用mysql游标的内容,如果你们有学习到知识或者技能,可以把它分享出去让更多的人看到。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。