Execution d'une procedure
Bonjour,
je travaille avec une base MySQL 4.02 sous linux et je souhaiterai exécuter la procédure suivant :
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 30 31 32 33 34 35 36 37
|
delimiter
CREATE PROCEDURE updateConventionRenouvellement()
BEGIN
DECLARE done INT DEFAULT 0;
DECLARE idConvF, idConvM INT;
DECLARE curConv CURSOR FOR
SELECT t1.CP_ID, t2.CP_ID FROM `CONVENTIONS_CP` t1, `CONVENTIONS_CP` t2
WHERE t1.`CP_ID_MERE` = 0
AND t1.`CP_NOM` = t2.`CP_NOM`
AND t1.`STR_ID` = t2.`STR_ID`
AND t2.`DS_ID` = (
SELECT t4.DS_ID FROM DATES_SAISONS_DS t3, DATES_SAISONS_DS t4
WHERE t3.DS_ID = t1.DS_ID
AND t4.DS_DEB_SAISON < t3.DS_DEB_SAISON
ORDER BY t4.DS_DEB_SAISON DESC
LIMIT 1);
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
OPEN curConv;
REPEAT
FETCH curConv INTO idConvF, idConvM;
IF NOT done THEN
UPDATE `CONVENTIONS_CP` t1
SET t1.CP_ID_MERE = idConvM
WHERE t1.CP_ID = idConvF;
END IF;
UNTIL done END REPEAT;
CLOSE curConv;
END
delimiter ; |
Pour le moment j'obtiens une erreur 1064 en essayant de lancer le code à partir de la fen