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 :
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).
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
Sachant que :
Sauriez-vous d'où vient mon problème et comment le régler ?
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 | +----------+
Merci d'avance
Partager