如何使用单个查询更新多个表。我必须一次更新两个表。我尝试了这个查询,但无法更新
UPDATE contact,bill SET companyid =2 WHERE userid=1 AND companyid =20;
答案 0 :(得分:3)
这应该有用。
UPDATE contact INNER JOIN bill SET companyid =2 WHERE userid=1 AND companyid =20;
或者是为了防止冲突。(不确定你的桌面布局,但这是粗略的想法)
UPDATE contact x INNER JOIN bill y SET x.companyid =2 WHERE x.userid=1 AND y.companyid =20;
答案 1 :(得分:2)
如果您“必须一次更新两个表”的原因是为了确保更改不会完成一半,那么您可能需要考虑在事务中包装您的查询:
START TRANSACTION;
UPDATE ...
UPDATE ...
COMMIT;
(或者无论MySQL的语法是什么......)
答案 2 :(得分:0)
您无法在同一时间更新。
UPDATE contact SET companyid=2 WHERE userid=1 AND companyid =20;
UPDATE bill SET companyid=2 WHERE userid=1 AND companyid =20;