Curseur qui ne fait qu'une seule itération
Bonjour,
j'ai besoin de parcourir une table et pour chaque enregistrement dans cette table j'ai besoin de créer dix lignes dans une autre table.
Pour l'instant j'ai fait ça :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| BEGIN
declare vChild INTEGER;
declare cpt INTEGER;
declare done integer default 0;
declare vCursor cursor for select id_child from t_child;
declare continue handler for sqlstate '02000' set done = 1;
open vCursor;
repeat
fetch vCursor into vChild;
if not done then
set cpt = 1;
while (cpt < 10) DO
insert into r_child_supporting_document(id_child, id_supporting_document, is_checked) values(vChild, cpt, 0);
set cpt = cpt + 1;
end while;
end if;
until not done end repeat;
end |
Mon problème est que mon code ne passe qu'une fois dans le curseur (je n'ai que les 10 enregistrements correspondant à la première ligne de mon curseur).
Sachant que :
Code:
1 2 3 4 5 6 7
|
select count(id_child) as nb_child from t_child;
+----------+
| nb_child |
+----------+
| 2203 |
+----------+ |
Sauriez-vous d'où vient mon problème et comment le régler ?
Merci d'avance