Problème de trigger pour mise à jour d'un champ à partir d'une autre table
Bonjour a tous,
Je veux créer un trigger before update afin mettre à jour un champ d'une table t1 à partir d'une autre table t2.
avec un sql simple, le problème ne se pose pas:
Code:
update t1 set field = (select field from t2 where t1.id=t2.id where exists (select null from t2 where t1.id=t2.id);
mais lorsque je veux créer le trigger associé, j'ai toujours le problème de table mutante.
et pour contourner ce problème. j'ai du créer une table intermédiaire pour que ça fonctionne.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| CREATE OR REPLACE TRIGGER TRIG_maj BEFORE UPDATE ON t1
DECLARE
V_field t2.field%TYPE;
BEGIN
FOR i IN (SELECT * FROM t2) LOOP
IF i.field IS NOT NULL THEN
UPDATE t3 SET field =i.field WHERE Id=i.id; ---- sachat que table t3= t1
END IF ;
END LOOP ;
END ;
/ |
sauf que le souci est que ça met à jour la table t3 et non pas la table t1 !!!!
Pouvez-vous m'aider svp sur ce point?
Merci d'avance