Bonjour,
Débutant en SQL, je viens à vous car je rencontre un problème sur ma base, sous oracle. Je souhaite créer un trigger qui actualise le stock de mes produits lorsque ceux-ci sont insérés dans une commande
Je m'explique voici deux de mes tables:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 create table Produits ( Numproduit number not null constraint produits_pk primary key, Nomproduit varchar2(30) not null, Categorie varchar2(15) not null, Prix_unit number not null, Quantite number );Le trigger que j'utilise est le suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 create table Detailcommandes ( Numcommande number not null, Numproduit number not null, Quantite number, primary key(Numcommande,Numproduit), foreign key(Numcommande) references Commandes(Numcommande), foreign key(Numproduit) references Produits(Numproduit) );
Lorsque je tente par exemple
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 CREATE OR REPLACE TRIGGER gestion_quantite after INSERT ON Detailcommandes FOR EACH ROW UPDATE produits SET Quantite =Quantite - :new.Quantite WHERE numproduit = :new.Numproduit
j'ai cette erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part insert into Detailcommandes values(10,20001,1);
ORA-00001: unique constraint (SQL_FQHBDQYTRHTVCQOFBCMNKZKHK.SYS_C009793450) violated ORA-06512: at "SYS.DBMS_SQL", line 1721
J'ai tenté beaucoup de choses issues de nombreux forums je ne vois pas où ça coince
Merci beaucoup !
Partager