oracle怎么同时更新两个表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle怎么同时更新两个表相关的知识,希望对你有一定的参考价值。

参考技术A 按顺序更新,然后再commit 就可以了。 参考技术B 两个表关联起来,就可以更新,如:
UPDATE product p, productPrice pp
SET pp.price = pp.price * 0.8
WHERE
p.productId = pp.productId
AND p.dateCreated < '2004-01-01'

海枫科技本回答被提问者采纳

update 更新多个表 SQL

SQL中,有2个表A1、A2,A1表中有字段D1(主键,与表A2中主键E1关联)、D2,A2中有字段E1、E2,请问怎么用 一个UPDATE同时将A1、A2表中的D2、E2字段同时更新成1(默认值是0),请认真看完题再回答,谢谢

参考技术A update 好像是不能同时更新两个表的

楼主想同时更新这两个表而采用单个更新是因为2个表的约束关系
其实还有一个办法
就是先把两个表的约束关系都停用了
然后用2条语句将2个表分别更新,更新完了以后再启用两个表的约束关系就可以了
参考技术B update 语句无法 同时 更新两个表;

可以 对2个表update 后

再统一提交追问

就是最后Commit? 没有同时更新么? 那组合情况怎么办? 我更新第一个表,但是更新第二个表需要第一个表修改字段以前的值组合查出来才能决定更新哪条记录的,我看网上有很多update同时更新多条记录,但都是用别的表更新一个表,并不是真正的同时更新多个表

追答

没有同时更新多个表的语法。

可以用触发器,在update一个表的时候,同时 update另一个表。

本回答被提问者采纳
参考技术C update A1 a,A2 b set a.D2=1,b.E2=1 where .....
update 和select 都可以同时操作多个表,为了方便可以在表后面加比如 a ,相当于变量一样。
mysql,sqlserver,oracle有效,其他数据库没试过追问

你确定实验过?我实验怎么报错,而且help中说明了update后不能跟2个表的,什么情况?

追答

你的什么数据库?

追问

SQL2008

追答

真不好意思sqlserver还真不行,update 多表只在mysql上试过,可以。sqlserver支持select多表,我还以为update也支持。

追问

哦~没关系,谢谢你了

参考技术D 一个UPDATE不可能做到更新两个表

可以将一个表的内容先提取到临时表,先更新此表,再用临时表内容作条件更新另一个表
第5个回答  2013-07-23 用级联更新。

以上是关于oracle怎么同时更新两个表的主要内容,如果未能解决你的问题,请参考以下文章

oracle 如何实现对单个表批量更新

oracle 触发器插入和更新时,怎么操作

update 更新多个表 SQL

两个表之间关联更新字段

oracle 怎么理解update 表 set 字段1 = 值,字段2 = 值 where 字段3 = 值

update 两个表关联 更新