2010-11-03 66 views
5

是否可以使用连接在单个查询中更新Oracle中的多个表?如果是这样,语法是什么?我的同事说他已经在MySQL中完成了。Oracle中的多表更新

更新 - 我想要做的就是这样的事情

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

您是否找到了解决方案?我有一个类似的问题,我想用一个数据库调用来更新两个表中每个表的状态列,而不是两个单独的调用。 – bakoyaro 2010-11-19 18:26:27

+1

不是。它不起作用。 – 2010-11-20 02:01:30

回答

4

什么问题是你想解决?您不能在Oracle中使用单个更新语句来更新多个表,但可以在视图上使用“反转”触发器。

+0

我只有SELECT和UPDATE权限。我无法创建触发器。 – 2010-11-03 08:23:55

+0

@Joyce Babu:视图和触发器可以在你自己的模式中。您不应该在表上需要任何其他特权。 (我假设你至少可以在你自己的模式中创建对象。) – 2010-11-23 05:48:47

+0

谢谢jonearles。该项目结束了,我无法再访问服务器来测试它。 – 2010-11-24 02:20:54