Bnjr;

j'aimerais créer un 'trigger before insert' dans lequel je récupère par un select les titres de congés d'un fonctionnaire de ma table 'titrcng' , je veux par la suite comparer la nouvelle ligne à insérer avec toutes les lignes obtenues par le select , en fait , je veux vérifier que le titre de congé à insérer ne chevauche pas avec les titres du même fonctionnaire qui sont déjà dans la base de données , pour cela j'ai créé le trigger suivant :
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
delimiter //
CREATE TRIGGER NON_OVERLAP  BEFORE INSERT ON `titrcng` 
FOR EACH ROW 
BEGIN 
DECLARE  done  INT DEFAULT 0; 
DECLARE DATDEB DATE;
DECLARE DATFIN DATE ; 
DECLARE OVERLAP_CURSOR  CURSOR FOR SELECT 'DatDeb' as DATDEB  ,'DatFin' as DATFIN  FROM titrcng  WHERE 'NSS'=NEW.NSS ;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
OPEN OVERLAP_CURSOR;
read_loop:LOOP 
FETCH OVERLAP_CURSOR INTO DATDEB ,DATFIN ;
IF done THEN LEAVE read_loop; 
END IF ;
IF (DATDEB <= NEW.DatFin  AND  NEW.DatDeb <= DATFIN ) THEN 
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = `Les congés ne doivent pas se chevaucher`;
END IF;
END LOOP;
CLOSE OVERLAP_CURSOR;
END//
delimiter ;
le trigger est effectivement créé , les triggers sont activés (SET GLOBAL event_scheduler=ON), mais quand j'insère une nouvelle ligne qui ne respect pas la condition évoquée dans le trigger , la ligne est quand même insérée ????
quelq'un peut m'aider svp?