2012-06-22 27 views
1

我們在兩個不同的MySQL服務器上有兩個表。我們有一個唯一的密鑰,它是invoicedate從另一個表中回填表格;不能有重複

我們需要抓住一段時間內的所有記錄,並將它們放到另一個表中。需要注意的是,可能有已經存在的記錄,因此我們希望將這些記錄從我們正在填寫的記錄中排除。

什麼疑問,想法,腳本等會對實現這個目標最有幫助?

回答

2

如果您將唯一鍵添加到唯一標識記錄(或字段組合)的字段上,則可以使用INSERT IGNORE INTO作爲MySQL語句。這將插入記錄,但是如果出現關鍵衝突(例如該記錄已存在時),它將直接進入下一個記錄。

您也可以使用REPLACE INTO而不是INSERT INTO,它與INSERT IGNORE INTO類似,但不會繼續處理下一條記錄,而會覆蓋衝突的行。

0

看合併語法

TSQLmerge

+1

從kingcoyote第一+1 – Paparazzi

+0

問題是標籤的MySQL(如果沒有把握通過MOD或提問者)嘗試答案,所以TSQL可能不恰當的。它似乎沒有MySQL有一個'MERGE'命令。雖然,看起來像'REPLACE INTO',就像kingcoyote提到的那樣,我在評論之前錯過了,可能是一個可行的選擇:http://blog.mclaughlinsoftware.com/2010/05/14/mysql-replace-into/ –

+0

@EricH當我第一次看時,我確信它在TSQL搜索中出現了。在接受kingcoyote之後會繼續刪除這個。 – Paparazzi

相關問題