2013-04-26 46 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

相關問題