-
trigger avec condition
salut,
j'ai un trigger qui fait se declenche apres un update sur une table;
le truc c 'est que j'ai 3 champs et ce que je voudrais , c'est que si il y a un update sur un des 3 champs je ramene les deux autres.
ex de matable.
A B C
1 2 3
udpate
A B C
1 5 3
ce que je souhaiterai c est comme il y a eu un update sur le champs b
que mon trigger me ramene les 2 autres champs,et que je les inseres dans une autre tables.
voila si A bouge je ramene B et C
si C bouge je ramene A et B
et si A bouge je ramene B et C
merci de votre aide
-
Le trigger ne peut pas "ramener" des valeur mais il est possible d'utiliser le trigger pour insérer les valeurs souhaitées dans les bonnes tables. Ceci peut se faire en utilsiant des triggers 'for each row"
-
soit tu fais un trigger after update général qui test quelle valeur a changé et déclenche un insert pour les 2 autres.
ex :
create trigger MonTrigger after update on MaTable for each row
begin
if (:new.A <> :old.A) then
insert into autretable (B, C) values :new.B, :new.C;
end if;
if (:new.B <> :old.B) then
insert into autretable (A, C) values :new.A, :new.C;
end if;
if (:new.C <> :old.C) then
insert into autretable (A, B) values :new.A, :new.B;
end if;
end;
ou, créer un trigger pour chaque champ :
ex pour le champ A :
create trigger MonTriggerA after update of A on MaTable for each row
begin
insert into autretable (B, C) values :new.B, :new.C;
end;
-
avec un decode c'est possible ?