在MySQL中一次更新多个表

时间:2014-03-07 06:41:47

标签: mysql sql-update

我有一个包含数千张桌子的数据库(每天每日记录的单独表格)。所有这些日常表都具有相同的结构。

我的问题是,我想以最简单的方式在所有这些表中应用更新操作。

e.g。

UPDATE table_1 SET colA = 'somevalue' WHERE <condition>;
UPDATE table_2 SET colA = 'somevalue' WHERE <condition>;

所以很明显除了表名

之外,所有参数都保持不变

对此的任何帮助都将受到高度赞赏。

谢谢, Kushal。

1 个答案:

答案 0 :(得分:1)

从information_schema中读取表名,并使用它构建更新语句。将其写入文件并再次阅读。

SELECT CONCAT('UPDATE ', table_name, ' SET col = "whatever" where condition = true;')
INTO OUTFILE '/tmp/my_update.sql'
FROM information_schema.tables t
WHERE t.table_schema = 'your_database_name';

SOURCE '/tmp/my_update.sql';

就是这样。