Bonjour à tous.
La boucle while en ligne 14 fonctionne pour var_i = 1 : La LOOP de la ligne 16 insère 60 enregistrements avec var_i = 1, puis la procédure s’arrête au lieu d'incrémenter var_i de 1 en ligne 25.
Je dois louper un truc
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 DELIMITER $$ drop procedure if exists sujets_importants $$ CREATE PROCEDURE sujets_importants() BEGIN declare var_i INT default 1; DECLARE done INT DEFAULT FALSE; DEclare v_id INT; DECLARE v_sujet CHAR(250); declare cur1 CURSOR FOR SELECT id , Avenir__Cinq_sujets_les_plus_prioritaires FROM `20231009_sainte_gemmes_en_2035` WHERE Avenir__Cinq_sujets_les_plus_prioritaires LIKE CONCAT('%',(SELECT sp.intitule from sujets_prioritaires sp WHERE sp.id=var_i),'%'); DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; read_while: WHILE (var_i < 11) DO OPEN cur1; read_loop: LOOP FETCH cur1 INTO v_id,v_sujet; IF done THEN LEAVE read_loop; ELSE INSERT INTO lien__personne__sujet_prioritaire VALUES(v_id,var_i); END IF; END LOOP read_loop; close cur1; SET var_i := var_i+1; END WHILE read_while; END$$ DELIMITER ; call sujets_importants();
Merci pour vos lumières
Partager