載入重複資料

如果使用 LOAD DATA INFILE 命令使用現有資料填充表,則通常會發現由於重複導致匯入失敗。有幾種可能的方法可以解決這個問題。

載入資料本地

如果在伺服器中啟用了此選項,則可以使用它來載入客戶端計算機而不是伺服器上存在的檔案。副作用是忽略唯一值的重複行。

LOAD DATA LOCAL INFILE 'path of the file/file_name.txt' 
INTO TABLE employee

LOAD DATA INFILE’fname’替換

使用 replace 關鍵字時,重複的唯一鍵或主鍵將導致現有行被替換為新行

LOAD DATA INFILE 'path of the file/file_name.txt' 
REPLACE INTO TABLE employee

LOAD DATA INFILE’fname’IGNORE

REPLACE 相反,現有行將被保留,新的行將被忽略。這種行為類似於上面描述的 LOCAL。但是,客戶端計算機上不需要存在該檔案。

LOAD DATA INFILE 'path of the file/file_name.txt' 
IGNORE INTO TABLE employee

通過中間表載入

有時忽略或替換所有重複項可能不是理想的選擇。你可能需要根據其他列的內容做出決策。在這種情況下,最好的選擇是載入到中間表並從那裡轉移。

INSERT INTO employee SELECT * FROM intermediary WHERE ...