关于MySQL游标的嵌套使用

前几天群里有人问MySQL的游标能不能嵌套使用,想当然地以为不能,后来试了下,居然可以,唉,不能随便想当然啊。例子如下:

CREATE PROCEDURE curdemo() 
NOT DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT ''
BEGIN
declare done1,done2 int default 0;
declare name1,name2 varchar(20);
declare id1,id2 int;
declare cur1 cursor for select id,name from test1;
declare continue handler for not found set done1 = 1;
open cur1;
repeat
fetch cur1 into id1, name1;
if not done1 then
insert into test3(name) values(name1);
begin
declare cur2 cursor for select id,name from test2;
declare continue handler for not found set done2 = 1;
open cur2;
repeat
fetch cur2 into id2,name2;
if not done2 then
insert into test3(name) values(name2);
end if;
until done2 end repeat;
close cur2;
set done2=0;
end;
end if;
until done1
end repeat;
close cur1;
commit;
END;

 

posted @ 2011-10-28 11:50  wwh  阅读(325)  评论(0编辑  收藏  举报