MySQL更新另一个表中的所有值

时间:2016-09-08 22:26:33

标签: mysql

我有两个表originaloriginal_backup,我正在创建一个回滚脚本,该脚本会从original_backup获取所有数据并将其重新放回original,这个问题我有大约60列。有没有一种简单的方法可以使用UPDATESET移动所有数据,而无需指定每一列?

例如: UPDATE original SET * FROM original_backup WHERE original.id = original_backup.id;

在这种情况下,使用REPLACE不是一个选项。

2 个答案:

答案 0 :(得分:0)

你可以做两件事:

DELETE FROM original
INSERT INTO original SELECT * FROM original_backup

这需要一些时间。切割得更干净:

CREATE TABLE original_restored AS SELECT * FROM original_backup
RENAME TABLE original TO original_prev, original_restored TO original

答案 1 :(得分:0)

这是我的解决方案,但我不使用UPDATE语句:

1)删除原始

中的所有数据

2)运行select insert query

类似的东西:

INSERT INTO original (Field1, Field2)
SELECT a.Field1, a.Field2
FROM original_backup a
INNER JOIN original b ON a.ID = b.ID