Динамический курсор в хранимой процедуре

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

11
задан Lightness Races with Monica 7 October 2011 в 17:02
поделиться