MAJ deux tables sous oracle

Fermé
dev_man Messages postés 83 Date d'inscription dimanche 30 octobre 2011 Statut Membre Dernière intervention 29 avril 2013 - 20 juil. 2012 à 11:58
DROE Messages postés 148 Date d'inscription mardi 5 mai 2009 Statut Membre Dernière intervention 26 juillet 2012 - 22 juil. 2012 à 22:46
Bonjour,

j'ai deux table et je voudrais faire la mise à jour sur deux colonnes sur deux table en un seul coup, est-il possible sous oracle 10g.

merci et bonne journée.


A voir également:

2 réponses

DROE Messages postés 148 Date d'inscription mardi 5 mai 2009 Statut Membre Dernière intervention 26 juillet 2012 48
22 juil. 2012 à 11:56
Hello,

tu peux utiliser un
Trigger After Update
sur la table A qui déclenchera la mise à jour sur la Table B par exemple.


DROE
0
UPDATE table1
INNER JOIN table2 ON table1.champA = table2.champB
SET
table1.champC = '6',
table2.champD = '66'
0
jee pee Messages postés 39632 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 24 avril 2024 9 234
22 juil. 2012 à 20:44
Salut,

Je pense que cette syntaxe n'existe pas sur oracle.

Par ailleurs le trigger after update a lui des limites. On ne peut utiliser que des valeurs (anciennes ou nouvelles) présentes dans la table A.

cdlt
0
DROE Messages postés 148 Date d'inscription mardi 5 mai 2009 Statut Membre Dernière intervention 26 juillet 2012 48
22 juil. 2012 à 21:29
avec les :NEW tu peux faire un

update table B set col1=:NEWxxxxx, col2 =:NEWxxxx
where col3=:NEWxxxxxx

je me trompe?

droe
0
jee pee Messages postés 39632 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 24 avril 2024 9 234
Modifié par jee pee le 22/07/2012 à 22:35
Oui mais il faut prendre des valeurs déjà présentes dans la table A (:new ou :old). On ne peut pas avoir une valeur comme dans l'exemple avec inner join :

table1.champC = '6',
table2.champD = '66'
0
DROE Messages postés 148 Date d'inscription mardi 5 mai 2009 Statut Membre Dernière intervention 26 juillet 2012 48
22 juil. 2012 à 22:46
oui oui, si la demande est de faire une mise à jour sur deux colonnes sur deux tables en un seul coup avec des valeurs différentes effectivement.
0