首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在mysql中在单个查询中更新两个表

问在mysql中在单个查询中更新两个表
EN

Stack Overflow用户
提问于 2013-10-01 06:44:35
回答 2查看 14.6K关注 0票数 1

我有两个表,名为supply和equipment。这两个表有一个名为:IAR_NO的公共字段

现在,我想要的是使用一个查询进行更新,这两个表的所有记录都包含在其IAR_NO中。

对此,什么是最好的查询?

我目前正在使用,但不工作。

代码语言:javascript
复制
update supply, equipment 
set supply.IAR_NO =  "9", equipment.IAR_NO= "9 " 
where equipment.IAR_NO = 0 and supply.IAR_NO = 0
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-01 06:54:43

应该可以使用多表更新,如文档中所述。

http://dev.mysql.com/doc/refman/5.5/en/update.html

代码语言:javascript
复制
UPDATE supply a INNER JOIN equipment b ON (a.IAR_NO= b.IAR_NO)
SET a.IAR_NO =  "9" , b.IAR_NO =  "9"
WHERE equipment.IAR_NO = 0 and supply.IAR_NO = 0;

注:

如果要用相同的数据更新两个表,那么可能有更好的方法来设计数据库。记住要保留编程DRY。

票数 6
EN

Stack Overflow用户

发布于 2013-10-01 06:53:41

这是两个不相互依赖的更新(用于更新)。如果它们需要一起完成,请在事务中完成它们。

代码语言:javascript
复制
START TRANSACTION;
UPDATE supply SET IAR_NO =  9 WHERE IAR_NO = 0;
UPDATE equipment SET IAR_NO =  9 WHERE IAR_NO = 0;
COMMIT;

这样,它就更明确了,我会说它更优雅,因为您可以看到实际更新的内容和值。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19109666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档