我们如何在mysql中更新多个表

时间:2011-07-15 14:26:50

标签: php mysql

如何使用单个查询更新多个表。我必须一次更新两个表。我尝试了这个查询,但无法更新

UPDATE  contact,bill SET companyid =2  WHERE  userid=1 AND companyid =20;

3 个答案:

答案 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;