为啥 oracle 不支持在单个查询中更新多个表?

Posted

技术标签:

【中文标题】为啥 oracle 不支持在单个查询中更新多个表?【英文标题】:Why don't oracle support Updating multiple table in a single query?为什么 oracle 不支持在单个查询中更新多个表? 【发布时间】:2014-06-03 15:02:37 【问题描述】:

下面的sql有效吗?

UPDATE suppliers, contacts
SET suppliers.status = 'Active',
    contacts.note = 'Also Supplier'
WHERE suppliers.supplier_id = contacts.contact_id;

但是 oracle 不支持。 为什么?

How to update two tables in one statement in SQL Server 2005?

【问题讨论】:

这不是有效的 sql。 techonthenet.com/sql/update.php 请参考此参考示例 - 更新多个表 该链接完全错误。该语句不是有效的(标准)SQL。 您的查询使用了高度非标准的 SQL 扩展,我相信只有 mysql 支持。所以,从某种意义上说,甲骨文确实支持它(甲骨文公司拥有 MySQL)。 您是否阅读了您链接的 SO 帖子的任何答案?两个都明明说You can't update multiple tables in one statement 【参考方案1】:

,提供的 sql 无效。

正如其他人在 cmets 中所述,您提供的链接是关于是否可以在 SQL Server 中的单个语句中更新多个表的问题。 这个问题的答案也是

【讨论】:

以上是关于为啥 oracle 不支持在单个查询中更新多个表?的主要内容,如果未能解决你的问题,请参考以下文章

在oracle数据库表中没有添加rowid字段为啥会出现

Oracle 使用单个查询更新和更改两个表中的少量列记录

在 Oracle 更新语句中使用子查询而不是表名

如何在 oracle 12c 中使用多个数据更新单个列

mysql查询一次在单个查询中在多个表中插入记录

平时使用oracle时,为啥会锁表