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:
mais lorsque je veux créer le trigger associé, j'ai toujours le problème de table mutante.
Code : Sélectionner tout - Visualiser dans une fenêtre à part update t1 set field = (select field from t2 where t1.id=t2.id where exists (select null from t2 where t1.id=t2.id);
et pour contourner ce problème. j'ai du créer une table intermédiaire pour que ça fonctionne.
sauf que le souci est que ça met à jour la table t3 et non pas la table t1 !!!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 ; /
Pouvez-vous m'aider svp sur ce point?
Merci d'avance
Partager