2017-04-07 29 views
0

如何在單個查詢中更新多個表中的多個列?如何更新多個表中的多個列

我試過下面但沒有成功。


My tables

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

任何線索是明顯的。

+0

可能重複的[MySQL,用一個查詢更新多個表](http://stackoverflow.com/questions/4361774/mysql-update-multiple-tables-with-one-query) – ADyson

+0

有很多答案這個如果你搜索,包括我剛纔建議的重複。 – ADyson

+0

您當前的查詢看起來正確。你真的嘗試過運行它嗎? –

回答

0

您不能直接更新Oracle中的多個表。

你也許可以做一個視圖的更新,像這樣:

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' 

甲骨文將只允許這個如果表之間的連接保留鍵 - 即由加入直接生產的每一行映射到源表中的單個行將被更新。我懷疑在這種情況下,School未被鍵保存,因爲該表中的每行可能與Class中的多行有關。所以你不能在一個聲明中做到這一點。

甲骨文對模糊關係思維的寬容程度遠低於其他系統。