Я хотел бы использовать 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 работать с динамическими курсорами?