2017-04-07 79 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中的多行有关。所以你不能在一个声明中做到这一点。

甲骨文对模糊关系思维的宽容程度远低于其他系统。