update 更新多个表 SQL

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 用级联更新。

以上是关于update 更新多个表 SQL的主要内容,如果未能解决你的问题,请参考以下文章

是否可以使用单个 UPDATE SQL 语句执行多个更新?

Access中UPDATE语句一次要更新多个数据

SQL一个字段多个数值怎么用update语句在每个数值上都加1

mysql 怎么写sql同时更新多个id的字段值,比如 id为1和2,怎么同时更新它们的name分别为 xxx,ooo

在 SQL 子查询中使用多个表进行 Oracle 半联接

sql 请教update语句in多个值时,进行多次更新