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