Anda dapat melakukan apa yang Anda inginkan dengan meletakkan kursor di BEGIN ... END
memblokir. Lihat "Nesting MySQL Cursor Loops" milik Roland Bouman
artikel untuk lebih jelasnya. Mungkin perlu diperhatikan bahwa komentarnya tentang teknik ini sering kali tidak diperlukan, karena seringkali mungkin untuk menulis ulang kueri daripada harus melakukan kursor bersarang.
Jika Anda masih perlu meletakkan kursor dalam satu lingkaran, kode Anda akan terlihat seperti ini:
increment: LOOP
block_cursor: BEGIN
DECLARE cur1 CURSOR FOR SELECT person_id, publication_id FROM p_publication WHERE person_id = new_count;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
OPEN cur1;
REPEAT
FETCH cur1 INTO pub_id, per_id;
IF NOT done THEN
INSERT INTO test.t2 VALUES (pub_id, per_id);
END IF;
SET new_count = new_count + 1;
UNTIL done END REPEAT;
CLOSE cur1;
IF !(new_count < old_count ) THEN
LEAVE increment;
END IF;
END block_cursor;
END LOOP increment;