UPDATE de 2 tables

Signaler
Messages postés
81
Date d'inscription
mardi 7 mars 2006
Statut
Membre
Dernière intervention
12 juillet 2006
-
Messages postés
268
Date d'inscription
samedi 22 février 2003
Statut
Membre
Dernière intervention
24 avril 2013
-
Bonjour, j'aimerai savoir comment faire un update de 2 tables dans oracle :

Je voudrais mettre ces 2 updates en un seul :

UPDATE proact SET projet @projet WHERE (projet @original_projet)

UPDATE cra SET projet @projet WHERE (projet @original_projet)

J'ai essayé de commencer comme sa :
UPDATE proact, cra SET......
Mais sa ne passe pas

4 réponses

Messages postés
268
Date d'inscription
samedi 22 février 2003
Statut
Membre
Dernière intervention
24 avril 2013
3
Impossible Avec SQL Server et sans doute aussi avec Oracle(mais je ne connait pas spécifiquement).
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
32
Salut

Je pense aussi que c'est impossible
Mais tu peux le simuler en mettant les deux ordres dans une transaction
si cela passe les deux tables sont maj(commit)
sinon rien (roolback)

Voila
Messages postés
81
Date d'inscription
mardi 7 mars 2006
Statut
Membre
Dernière intervention
12 juillet 2006

Hello,

Mais tu peux le simuler en mettant les deux ordres dans une transaction
si cela passe les deux tables sont maj(commit)
sinon rien (roolback)???

Comment faut-il faire ????
Messages postés
268
Date d'inscription
samedi 22 février 2003
Statut
Membre
Dernière intervention
24 avril 2013
3
Sous SQL SERVER en gros :

BEGIN TRANSACTION
UPDATE 1
UPDATE 2
COMMIT TRANSACTION

mais je te conseil de regarder la doc d'oracle pour avoir des détail sur les transaction avec oracle
il ya pas mal de paramêtre a prendre en compte :

Gestion des locks des tables ou des enregistrements
Gestion des erreurs dans les transactions.

Le principe générale d'une transaction c'est qu'elle englobe plusieurs opération de manière atomique(comme s'il n'y en avait qu'une) donc ou bien la transaction réussi et on la valide (COMMIT) ou bien on l'anulle (ROLLBACK) dans ce cas la base de donnée revient dans l'état ou elle était au début de la transaction.

c'est généralement le moyen utiliser pour éxécuter Deux opérations en évitant une autres requette vienne chambouler la base entre les deux., on peut aussi avoir d'autres system comme LOCK TABLE ET UNLOCK Table sous MySql.

Les transactions sont lié au SGBDR utiliser donc Trouve la Doc pour Oracle.