MySQL 提供 LOAD DATA INFILE 高效匯入文字檔,以及批次模式執行 SQL 腳本,是資料遷移、ETL 載入與自動化部署的核心技能。本文詳細說明檔案格式要求、匯入指令參數、批次執行方式與輸出重導向。
\N 表示LOAD DATA LOCAL INFILE 'pet.txt' INTO TABLE pet;
Windows 編輯器產生的檔案使用 \r\n 換行,需明確指定:
LOAD DATA LOCAL INFILE 'pet.txt' INTO TABLE pet
LINES TERMINATED BY '\r\n';
LOAD DATA LOCAL INFILE 'data.txt' INTO TABLE target_table
FIELDS TERMINATED BY ',' ENCLOSED BY '"' ESCAPED BY '\\'
LINES TERMINATED BY '\n'
IGNORE 1 LINES; -- 跳過標題行
將欲執行的 SQL 陳述式逐行存入文字檔,如 batch-file.txt。
mysql -h host -u user -p < batch-file.txt
mysql -h host -u user -p < batch-file.txt > out.txt
mysql> SOURCE batch-file.txt;
-- 或
mysql> \. batch-file.txt;
LOCAL 關鍵字表示從客戶端讀取檔案,需客戶端與伺服器均啟用 local_infile=1。FILE 權限且路徑在 secure_file_priv 目錄下。--force 參數忽略錯誤繼續。ALTER TABLE ... DISABLE KEYS)匯入完成後重建(ENABLE KEYS)。