[SQL] Trigger before delete

Résolu
zzzer Messages postés 938 Statut Membre -  
 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 ! ;)

--
N'oubliez pas de marquer la discussion comme résolue dès que c'est le cas ! -> En haut de la page, Statut: Résolu
Attention aussi à bien respecter la 6e règle de la charte : 
Rédiger les messages dans un langage clair sans abréviation, style télégraphique ou mode SMS
Configuration: HP DV5 1123ef

3Go de RAM
Core 2 Duo 2GHz
NVidia 9600M GT
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 938 Statut Membre 181
 
Resolu :

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