在MySQL 中使用LOAD DATA INFILE 模擬重複鍵更新
MySQL 中的LOAD DATA INFILE 是快速匯入大型資料集的強大工具。但是,它缺乏對 ON DUPLICATE KEY UPDATE 子句的支持,這可能會導致資料不一致或效能挑戰。要規避此限制,需要採用替代方法。
要模擬重複密鑰更新功能,請考慮以下步驟:
1.建立臨時表:
CREATE TEMPORARY TABLE temporary_table LIKE target_table;
2.最佳化臨時表(可選):
透過從臨時表中刪除索引來加快資料載入速度:
SHOW INDEX FROM temporary_table; DROP INDEX `PRIMARY` ON temporary_table; DROP INDEX `some_other_index` ON temporary_table;
3.將CSV 載入到暫存資料表中:
使用 LOAD DATA INFILE 執行基本資料匯入:
LOAD DATA INFILE 'your_file.csv' INTO TABLE temporary_table FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' (field1, field2);
4.使用 ON DUPLICATE KEY UPDATE
4.使用 ON DUPLICATE KEY UPDATE4.使用 ON DUPLICATE KEY UPDATESHOW COLUMNS FROM target_table; INSERT INTO target_table SELECT * FROM temporary_table ON DUPLICATE KEY UPDATE field1 = VALUES(field1), field2 = VALUES(field2);
4.使用 ON DUPLICATE KEY UPDATE複製資料:
更新目標表,同時保留現有記錄:DROP TEMPORARY TABLE temporary_table;
5.刪除臨時表:
資料傳輸完成後,丟棄臨時表:按照以下步驟,您可以使用LOAD DATA模擬 ON DUPLICATE KEY UPDATE 功能INFILE,優化資料加載,同時保持資料完整性。以上是如何在 MySQL 中使用 LOAD DATA INFILE 模擬重複鍵更新?的詳細內容。更多資訊請關注PHP中文網其他相關文章!