在单个sql语句中更新多个表

时间:2012-01-13 14:22:16

标签: mysql

简单SQL语法问题。我正在编写一个脚本来将数据从旧架构移动到新架构。我必须在执行移动时关闭完整性约束,以便我的CASCASE不起作用。我想用一个新的值来更新多个表:

UPDATE table1, table2 
SET table1.customer_id = 999, table2.customer_id = 999;
WHERE table1.customer_id = 3
AND table2.customer_id = 3 

虽然正确的语法是什么?希望以上解释我想要实现的目标?谢谢:)。

1 个答案:

答案 0 :(得分:4)

试试这个:

UPDATE table1
INNER JOIN table2 USING (customer_id)
SET table1.customer_id = 999, table2.customer_id = 999
WHERE table1.customer_id = 3

从未尝试过像这样的关键列的更新,但这适用于其他列,所以值得一试。