boucle imbriquée dans une procédure st?
Bonjour à tous,
je crois que décidément je ne suis pas fait pour les procédures stockées... je n'arrive pas à assimiler le raisonnement.
Je dois faire une procédure:
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
| DELIMITER |
CREATE PROCEDURE maProc()
BEGIN
DECLARE done INT DEFAULT 0;
DECLARE var1 VARCHAR(32);
DECLARE var2 VARCHAR(32);
DECLARE curseur1 CURSOR FOR SELECT s1,s2,s3 from maTable where s2 > 0;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
OPEN curseur1;
REPEAT
FETCH curseur1 INTO ss1,ss2,ss3;
IF done = 0 THEN
???????
END IF;
UNTIL done
END REPEAT;
CLOSE curseur1;
END|
DELIMITER ; |
Je souhaite utiliser par exemple ss1 pour refaire une requête, parcourir à nouveau ces nouveaux résultats pour faire des traitement.
Mais je prend des erreurs de syntaxe. Apparemment on ne peut donc pas utiliser deux curseurs ?
mes tables sont schématiquement comme ça:
Code:
1 2 3
| maTable (id,s2 (int) )
maTable2 (id,#parent (int),d2 (int))
(ps: le champs #parent n'est pas une foreign key, c'est seulement un champs simulant un foreign key) |
Grosso-modo je dois requêter maTable1 pour obtenir admettons 3 lignes. Ensuite avec les id de ces 3 lignes, je dois allez chercher dans maTable2 les entrées qui ont pour parent l'id de la première table.
Puis pour chaque fils trouvé donc, je dois incrémenter la variable d2.
Je sais pas si c'est clair, mais je reste disponible pour toute précision ou reformulation.
Merci d'avoir pris la peine de lire jusque là.