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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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