Bonjour à tous, je suis nouvelle sur le forum, je m'appel Stéphanie, je suis en L3 maths info, et je viens chercher de l'aide auprès de vous !
j'ai une table reservation :
je voudrais faire un trigger tel que lors de l'insertion d'une réservation la date d'arrivée soit inférieure à la date de départ.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 CREATE TABLE Reservation ( Numres Number (5) not null, Numclient Number(5) not null CONSTRAINT ref2_numclient_client REFERENCES client, Numchambre Number(3) not null, NumHotel number(3) NOT NULL, Nbpersaccomp number(5) not null, DateArrivee DATE not null, DateDepart DATE not null , NbChambre Number(5) not null Constraint dom_Nbchambre check (nbchambre >0 ), dateres DATE not null, CONSTRAINT FK_reservation foreign key (numchambre,numhotel) REFERENCES chambre, constraint pk_reservation primary key ( numres) );
j'ai écris cela :
Message d"erreur :
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 create or replace trigger contrainte15 after insert or update on reservation for each row declare N integer; begin select 1 into N from reservation where datedepart < datearrivee; raise_application_error ( -20001,'datedepart < date arrivée'); EXCEPTION when no_data_found then null; when too_many_rows then raise_application_error ( -20002 ,'trop de ligne c15 violée'); end ; /
Je n'arrive pas à trouver mon erreur, pourriez vous m'aider ?ORA-04091: la table SYSTEM.RESERVATION est en mutation ; le déclencheur ou la fonction ne peut la voirORA-06512: à "SYSTEM.CONTRAINTE15", ligne 3ORA-04088: erreur lors d'exécution du déclencheur 'SYSTEM.CONTRAINTE15'
Merci d'avance pour votre aide !
Partager