0
我相信我有一個問題,「LOAD DATA INFILE ... REPLACE INTO TABLE」進程正在刪除/替換重複的信息,但我認爲它是通過添加帶有更新ID的新記錄。MySQL的 - 如何防止重複使用LOAD DATA INFILE
換句話說,如果我有一個表,看起來像這樣:
ID | INFO | DATE | 1 | foo | 2011-12-01 | 2 | bar | 2011-12-01 |
,我使用LOAD DATA INFILE ...更換試圖數次插入INFO和日期字段作爲其一部分是插入到其他表的過程,我結束了類似下面:
ID | INFO | DATE | 15 | foo | 2011-12-01 | 23 | bar | 2011-12-01 |
到底發生了什麼是它與新的副本之一取代了原來的數據,然後保存記錄與新的ID(在最新的ID,我認爲?? !!)。
在這裏,我用它來管理這個代碼:
$sqlDomain = "LOAD DATA LOCAL INFILE '".$csvfile."' REPLACE INTO TABLE sg_domains FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n' IGNORE 1 LINES (Domain,@dummy1,@dummy2,@dummy3,@dummy4,@dummy5) SET UserID = ".$UserID;
$sqlDelDupeDoms = "delete t2 from sg_domains as t1, sg_domains as t2 where t1.Domain = t2.Domain and t2.id > t1.id;";
$sqlDelLikeDoms = "delete t2 from sg_domains as t1, sg_domains as t2 where t1.Domain LIKE CONCAT('%',t2.Domain,'%') and t2.id > t1.id;";
使用
變量是爲了從試圖插入需要從CSV文件只有一個字段的錶轉移不必要的字段中的@dummy對於其他INSERT過程稍後。我也明顯使用後面的兩個命令來「清除」僞裝和類似的數據。我是否正確和/或有效地做這個?
任何意見,將不勝感激。
謝謝!!!!!