Boucle WHILE qui ne boucle pas
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.
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
| 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(); |
Je dois louper un truc :?
Merci pour vos lumières