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 :

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) 
);
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.

j'ai écris cela :

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 ;
/
Message d"erreur :

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'
Je n'arrive pas à trouver mon erreur, pourriez vous m'aider ?

Merci d'avance pour votre aide !