[SQL] Trigger before delete

Résolu
zzzer Messages postés 906 Date d'inscription   Statut Membre Dernière intervention   -  
 fz -
Bonjour,

J'ai une table PRODINFO contenant des informations sur les differents produits (dont le prix : list_price) et une table PRICEHISTORY qui enregistre tous les changements de prix de tous les produits (rec_id, product_id, rec_date, price) ; rec etant pour record ( ou enregistrement en francais).

Ce que je veux maintenant c'est faire en sorte que quand un produit est supprime de la table PRODINFO, toutes les lignes de la table PRICEHISTORY le concernant soient aussi supprimees.

J'ai donc ecrit ce trigger :
create or replace
trigger modProduct
before insert or update or delete of list_price on prodinfo
for each row
begin
if deleting then
delete * from priceHistory
where priceHistory.product_id = :old.product_id
else
INSERT INTO pricehistory(rec_id, product_id, rec_date, price)  VALUES(recIDSeq.nextval, :new.product_id, SYSDATE, :new.list_price);
end if;
end;


Mais lorsque j'essaye de faire des operations avec les produits, SQL Developer m'informe que mon trigger n'est pas valide...

Quelqu'un saurait me dire ou est mon erreur ?


Merci d'avance ! ;)

A voir également:

2 réponses

fz
 
if deleting then
delete * from priceHistory
where priceHistory.product_id = :old.product_id

a remplacer par

if deleting then
delete from priceHistory
where priceHistory.product_id = :old.product_id

:)
1
zzzer Messages postés 906 Date d'inscription   Statut Membre Dernière intervention   181
 
Resolu :

delete from pricehistory
where product_id = :old.product_id;
0