Précédent   Forum des professionnels en informatique > Bases de données > Oracle > PL/SQL
PL/SQL Forum d'entraide sur le PL/SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/12/2007, 11h06   #1
Membre habitué
 
Inscription : janvier 2004
Messages : 507
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 507
Points : 101
Points : 101
Par défaut 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
donny est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/12/2007, 16h25   #2
Membre éprouvé
 
Inscription : décembre 2007
Messages : 354
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : décembre 2007
Messages : 354
Points : 408
Points : 408
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"
Michel SALAIS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2007, 09h01   #3
Membre du Club
 
Inscription : décembre 2005
Messages : 41
Détails du profil
Informations personnelles :
Âge : 41
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : décembre 2005
Messages : 41
Points : 46
Points : 46
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;
Gweanel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2007, 09h14   #4
Membre habitué
 
Inscription : janvier 2004
Messages : 507
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 507
Points : 101
Points : 101
avec un decode c'est possible ?
donny est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h43.


 
 
 
 
Partenaires

Hébergement Web