我們在兩個不同的MySQL服務器上有兩個表。我們有一個唯一的密鑰,它是invoice
和date
。從另一個表中回填表格;不能有重複
我們需要抓住一段時間內的所有記錄,並將它們放到另一個表中。需要注意的是,可能有已經存在的記錄,因此我們希望將這些記錄從我們正在填寫的記錄中排除。
什麼疑問,想法,腳本等會對實現這個目標最有幫助?
我們在兩個不同的MySQL服務器上有兩個表。我們有一個唯一的密鑰,它是invoice
和date
。從另一個表中回填表格;不能有重複
我們需要抓住一段時間內的所有記錄,並將它們放到另一個表中。需要注意的是,可能有已經存在的記錄,因此我們希望將這些記錄從我們正在填寫的記錄中排除。
什麼疑問,想法,腳本等會對實現這個目標最有幫助?
如果您將唯一鍵添加到唯一標識記錄(或字段組合)的字段上,則可以使用INSERT IGNORE INTO作爲MySQL語句。這將插入記錄,但是如果出現關鍵衝突(例如該記錄已存在時),它將直接進入下一個記錄。
您也可以使用REPLACE INTO而不是INSERT INTO,它與INSERT IGNORE INTO類似,但不會繼續處理下一條記錄,而會覆蓋衝突的行。
看合併語法
從kingcoyote第一+1 – Paparazzi
問題是標籤的MySQL(如果沒有把握通過MOD或提問者)嘗試答案,所以TSQL可能不恰當的。它似乎沒有MySQL有一個'MERGE'命令。雖然,看起來像'REPLACE INTO',就像kingcoyote提到的那樣,我在評論之前錯過了,可能是一個可行的選擇:http://blog.mclaughlinsoftware.com/2010/05/14/mysql-replace-into/ –
@EricH當我第一次看時,我確信它在TSQL搜索中出現了。在接受kingcoyote之後會繼續刪除這個。 – Paparazzi