我意识到这个问题似乎已经被问过并得到了回答,但我仍然不确定这是否可行。
我正在尝试更新9个表以反映user_id值的变化,有点像这样:
UPDATE table1, table2, table3, table4 SET
table1.id='12', table2.id='12', table3.id='12', table4.id='12'
WHERE table1.id='15' OR table2.id='15' OR table3.id='15' OR table4.id='15'
这可能吗?我错过了一些非常明显的东西吗?
答案 0 :(得分:0)
UPDATE的语法是
UPDATE table_name
SET column1=value, column2=value2,...
WHERE some_column=some_value
您似乎一次只能更新一个表。
答案 1 :(得分:0)
更新语句与select非常相似,所以你应该能够做到这一点!
但是,我建议使用触发器。
答案 2 :(得分:0)
将OR
更改为AND
否则您将遇到问题。 OR
将更新许多其他用户ID
UPDATE table1, table2, table3, table4 SET
table1.id='12', table2.id='12', table3.id='12', table4.id='12'
WHERE table1.id='15' AND table2.id='15' AND table3.id='15' AND table4.id='15'
答案 3 :(得分:0)
Innodb存储引擎支持外键级联更新 - http://dev.mysql.com/doc/refman/5.1/en/innodb-foreign-key-constraints.html
你应该考虑这个
<强>替代地强>
将单个查询分解为九个查询(每个表格各一个)以最大限度地减少犯错的潜在风险(安全而非智能游戏)