2011-01-12 73 views
0

我確實有兩個表,每個都有50000個數據。這兩個表編號從1開始 - 50000,所以當我嘗試通過使用如何合併兩個表格?

INSERT IGNORE 
    INTO table_1 
SELECT * 
    FROM table_2 

它完全重寫現有的從TABLE_2插入到TABLE_1。我不想重寫它,但添加爲新的,所以它將完成10萬。但是也可以說索引列中有5到10個重複,所以也重複檢查索引。我怎樣才能做到這一點??

回答

0

使用PHP或其他喜歡的語言,這將是約10-20行代碼...

+0

這不回答他的問題,所以應該在評論部分。你也不知道他的設置,所以PHP我不與他有關,例如可能是Python應用程序等。 – 2011-01-12 10:07:02

0

如果TABLE_1和TABLE_2需要首先要有不同的密鑰對全成合併發生

TABLE_1鍵必須從1-50000開始,TABLE_2鍵值必須從50001-100000

開始對於複製你可以處理在MySQL中使用的更新功能

INSERT INTO table_1 
    SELECT * FROM table_2 
ON DUPLICATE KEY UPDATE table_1.val=table_1.val 
0

如果存在主鍵列,則必須將其從插入中排除,如果其中存在重複項。

一個解決方案是插入一個刪除重複值的選擇。

INSERT IGNORE INTO table_1 (f1, f2, f3) 
SELECT f1, f2, f2 FROM table_2 WHERE table_2.index NOT IN (SELECT index FROM table_1) 

OBS,這不是一個緩慢的數據庫服務器上非常有效,並且可以與上表的更多信息被寫越好。