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:
Voici mon insert:
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 ;
Sa ne devrais pas passer car la mission 1 à la même heure de départ que l'escale
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)
Je pense que c'est dans ma condition where que cela ne va pas mais je vois pas pourquoi.
Merci de votre aide
Partager