10
我想在游标中使用LIMIT。光标应在循环中多次使用和更新,每次使用LIMIT的不同参数。这里是一些代码:存储过程中的动态光标
DELIMITER $$
CREATE PROCEDURE `updateIt`() READS SQL DATA
BEGIN
declare done int(1) default 0;
declare counter int(10) default 0;
declare xabc int(10) default 0;
declare tab1Cursor cursor for select abc from tab1 limit 100000*counter, 100000;
declare continue handler for not found set done=1;
loopCounter: LOOP
set done = 0;
open tab1Cursor;
igmLoop: loop
fetch tab1Cursor into xabc;
if done = 1 then leave igmLoop; end if;
-- do something
end loop igmLoop;
close tab1Cursor;
if (counter = 1039)
leave loopCounter;
end if;
set counter = counter + 1;
END LOOP loopCounter;
END $$
DELIMITER ;
然而,这不工作(我还用光标在LOOP counterLoop尝试过)。 Mysql能处理动态游标吗?
进入光标感谢您的例子。这可能适用于我的问题。我试试这个。 – Marcus
千谢谢@ Pentium10 – gca
这个答案的大部分似乎来自http://forums.mysql.com/read.php?61,116597,226041。也许适当的归属将是适当的。 – Rob