2013-04-26 60 views
0

我有两个表,其中的某些行需要在不同的时间进行同步。mySQL同步两个表中的某些行 - 复制数据并更新

在保留两个表的主键的同时,将行从一个表复制到另一个表的最简洁方法是什么?

目前我使用如下所示的两个查询,但我偶尔会得到象这样的错误:Duplicate entry '465' for key 1

DELETE * FROM t2 WHERE instanceID='10' 

INSERT INTO t2 (SELECT * FROM t1 WHERE instanceID='10') 

回答

0

使用ON DUPLICATE KEY SET条款复制的列时,有一个重复。

INSERT INTO t2 
SELECT * FROM t1 WHERE <condition> 
ON DUPLICATE KEY UPDATE col1 = t1.col1, col2 = t1.col2, col3 = t1.col3, ... 
+0

啊是的,有道理。这是一个很大的桌子。没有捷径可以单独键入每个列名称? – cronoklee 2013-04-26 16:14:31

+0

这可以很好地使用'ON DUPLICATE KEY UPDATE'而不是'ON DUPLICATE KEY SET'。非常感谢Barmar – cronoklee 2013-04-26 16:20:41

相关问题