2017-04-07 4 views
0

Wie können wir mehrere Spalten in mehreren Tabellen in einer einzigen Abfrage aktualisieren?Wie Sie mehrere Spalten in mehreren Tabellen aktualisieren

Ich versuchte das unten aber keinen Erfolg.


My tables

update Class c, School s 
set c.Status='Absent', s.Status='Absent' 
Where c.ID='&ID' and c.ID=s.ID; 

Irgendwelche Hinweise sind spürbar.

+0

Mögliche Duplikate von [MySQL, mehrere Tabellen mit einer Abfrage aktualisieren] (http://stackoverflow.com/questions/4361774/mysql-update-multiple-tables-with-one-query) – ADyson

+0

gibt es viele Antworten auf dies, wenn Sie suchen, einschließlich des Duplikats, das ich gerade vorgeschlagen habe. – ADyson

+0

Ihre aktuelle Abfrage sieht korrekt aus. Hast du es tatsächlich versucht? –

Antwort

0

Sie können in Oracle keine direkte Aktualisierung mehrerer Tabellen durchführen.

Möglicherweise können Sie ein Update einer Ansicht tun, wie folgt aus:

update (
select c.status class_status, s.status school_status 
from Class c, School s 
Where c.ID='&ID' and c.ID=s.ID) 
set class_status='Absent', school_status='Absent' 

Oracle wird dies nur zulassen, wenn die Verbindung zwischen den Tabellen Schlüssel bewahrt - dh jede Zeile durch die direkt erzeugt beitreten abbildet eine einzelne Zeile in den Quellentabellen, die aktualisiert werden. Ich vermute, dass in diesem Fall School nicht Schlüssel-beibehalten wird, da sich jede Zeile in dieser Tabelle wahrscheinlich auf mehr als eine Zeile in Class bezieht. Sie werden das also nicht in einer einzigen Anweisung tun können.

Oracle ist gegenüber dem Fuzzy-Relational-Denken weitaus weniger tolerant als andere Systeme.

Verwandte Themen