Problème de comparaison dans une proc
Bonjour à tous et à toutes.
Je débute en procédures stockées.
J'ai suivi quelques articles présents sur ce site. (Merci aux auteurs).
Bon, pour en venir à mon problème:
J'ai une table (semaine) qui contient 7 clés étrangères (lundi, mardi...) vers la même table (jour).
Parfois certains champs sont NULL (aucun jour associé).
Je veux écrire une procédure à qui on passe un id de semaine et qui efface tous les jours associés.
Elle se présente comme suit :
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
|
DELIMITER //
DROP PROCEDURE IF EXISTS DEL_Semaine//
CREATE PROCEDURE DEL_Semaine (RP_idSemaine int)
BEGIN
DECLARE RP_lundi,RP_mardi,RP_mercredi INT default NULL;
DECLARE intrvbl INT default 0;
DECLARE cur_sem CURSOR FOR SELECT lundi,mardi,mercredi FROM semaine WHERE idSemaine = RP_idSemaine;
DECLARE CONTINUE handler FOR NOT FOUND SET intrvbl = 1;
OPEN cur_sem;
FETCH cur_sem into RP_lundi, RP_mardi, RP_mercredi;
IF intrvbl = 0 THEN
IF RP_lundi <> NULL THEN
DELETE FROM jour WHERE idjour = RP_lundi;
END IF;
if RP_mardi <> NULL THEN
DELETE FROM jour WHERE idjour = RP_mardi;
END IF;
if RP_mercredi <> NULL THEN
DELETE FROM jour WHERE idjour = RP_mercredi;
END IF;
END IF;
CLOSE cur_sem;
END//
DELIMITER ; |
Le problème c'est que j'entre jamais dans les if du style RP_lundi <> NULL ! Même si le RP_lundi a bien une valeur (un select rp_lundi avant le if me renvoi bien un champ. Donc ça passe pas le if.
C'est sûrement très bête mais je suis coincé là.
Merci de m'aider.
--
Hpar