Bonjour à tous,

Je cherche à un trigger qui supprimerai un enregistrement d'une table B, lorsque un enregistrement d'une table A se fait. J'ai réussi à faire le trigger d'insertion lors de la création d'un enregistrement, mais pour l'inverse je dois dire que je bloque.


Pour l'insertion j'ai, pour un enregistrement créé dans la table TABLE_A un enregistrmeent qui s'insère dans la table TABLE_B :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
CREATE OR REPLACE TRIGGER SCHEMA.TRG_CREATE
BEFORE INSERT ON SCHEMA.TABLE_A FOR EACH ROW
BEGIN
INSERT INTO SCHEMA.TABLE_B(ID,TEXTE) values (:new.ID,:new.TEXTE);
END;
/
A priori, ce trigger fonctionne.

Le problème se pose pour la suppression. Le champ commun entre les deux tables est ID.
Le trigger devrait à la suppression d'un enregistrement de ma table TABLE_A, supprimer un enregistrement de ma table TABLE_B.

J'ai essayé à taton ce trigger :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
CREATE OR REPLACE TRIGGER SCHEMA.TRG_DEL
BEFORE DELETE ON SCHEMA.TABLE_A FOR EACH ROW
BEGIN
DELETE  from SCHEMA.TABLE_B where TABLE_A.ID=TABLE_B.ID;
END;
/
Merci pour votre aide.