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 : 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
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