2010-11-03 9 views
5

Est-il possible de mettre à jour plusieurs tables dans Oracle avec une seule requête à l'aide de join? Si oui, quelle est la syntaxe? Mon collègue a dit qu'il l'avait fait en MySQL.Mise à jour de plusieurs tables dans Oracle

Mise à jour - Ce que je suis en train de faire est quelque chose comme ça

UPDATE table1 t1 JOIN table2 t2 ON t1.id = t2.id SET t1.column1 = 'ABC', t2.column2 = 'BCD' WHERE <condition> 
+0

Avez-vous trouvé une solution pour cela? J'ai un problème similaire où je voudrais mettre à jour une colonne d'état dans chacun des deux tableaux avec un appel db au lieu de deux appels distincts. – bakoyaro

+1

Non. Cela n'a pas fonctionné. –

Répondre

4

Quel est le problème que vous essayez de résoudre? Vous ne pouvez pas utiliser une instruction de mise à jour unique dans Oracle pour mettre à jour plusieurs tables, mais il est possible d'utiliser un déclencheur "Au lieu de" sur une vue.

+0

Je n'ai que l'autorisation SELECT et UPDATE. Je ne peux pas créer un déclencheur. –

+0

@Joyce Babu: La vue et le déclencheur peuvent être dans votre propre schéma. Vous ne devriez pas avoir besoin de privilèges supplémentaires sur les tables. (Je suppose que vous pouvez au moins créer des objets dans votre propre schéma.) –

+0

Merci jonearles. Le projet est terminé et je n'ai plus accès au serveur pour le tester. –

Questions connexes