Bonjour,

J'ai fait un trigger dans ma table qui vérifier lors de mon insert s'il existe pas dans une autre table, un enregistrement dont l'heure de départ est supérieur à celle que je passe et l'heure d'arrivé inférieur à celle que je passe sauf que mon trigger n'empêche pas l'insertion. il ne fonctionne donc pas.

Voici mon trigger:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
CREATE OR REPLACE TRIGGER VERIF_HEURE_ESCALE BEFORE
INSERT OR UPDATE OF heureArrivee ON ESCALE
FOR EACH ROW
WHEN(new.heureArrivee != null)
DECLARE nb NUMBER;
BEGIN
  SELECT COUNT(*) INTO nb FROM MISSION WHERE idMission = :new.idMission AND (HEUREARRIVEE <= :new.heureArrivee OR HEUREDEPART >= :new.heureArrivee);
  IF(nb = 1) THEN
    raise_application_error(-20002, 'L''heure de l''escale correspond déjà à l''heure de départ ou d''arrivée de la mission !');
  END IF;
END ;
Voici mon insert:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
INSERT INTO ESCALE (ville, heureArrivee, idMission) VALUES ('tete', to_date('2000/01/01 10:00', 'yyyy/mm/dd hh24:mi'), 1)
Sa ne devrais pas passer car la mission 1 à la même heure de départ que l'escale

Je pense que c'est dans ma condition where que cela ne va pas mais je vois pas pourquoi.

Merci de votre aide