DELIMITER $$;DROP PROCEDURE IF EXISTS `test`.`test`$$CREATE DEFINER=`root`@`localhost` PROCEDURE `test`(in $t int)
BEGIN
DECLARE $a,$b INT;
DECLARE cur_1 CURSOR FOR SELECT id FROM a where id>$t;
DECLARE CONTINUE HANDLER FOR NOT FOUND set $b=1;
set $b=0;
OPEN cur_1;
while $b<>1 do
FETCH cur_1 INTO $a;
insert into b set b=$a;
select id from b into $a where b=$a;
insert into c set c=$a;
END while;
CLOSE cur_1;
END$$DELIMITER ;$$这样来测试在while中二次使用游标失败(而且还是未涉及二次游标的循环情况)。
BEGIN
DECLARE $a,$b INT;
DECLARE cur_1 CURSOR FOR SELECT id FROM a where id>$t;
DECLARE CONTINUE HANDLER FOR NOT FOUND set $b=1;
set $b=0;
OPEN cur_1;
while $b<>1 do
FETCH cur_1 INTO $a;
insert into b set b=$a;
select id from b into $a where b=$a;
insert into c set c=$a;
END while;
CLOSE cur_1;
END$$DELIMITER ;$$这样来测试在while中二次使用游标失败(而且还是未涉及二次游标的循环情况)。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货