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 : 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();
Je dois louper un truc
Merci pour vos lumières