首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

CSV 檔案匯入 MySQL 完整指南:編碼統一、建表對應、LOAD DATA INFILE 參數詳解與避坑

     編輯:MySQL 資料庫相關知識

CSV (Comma-Separated Values) 是最通用的資料交換格式。MySQL LOAD DATA INFILE 可高效批次匯入,關鍵在於編碼一致、欄位對應、分隔符正確三要素。

前置準備

  1. CSV 編碼轉 UTF-8:Excel 另存為 CSV (UTF-8) 或 Notepad++ / VS Code 轉碼。
  2. 建立目標表:欄位順序、型別、長度與 CSV 完全對應;日期欄位在 Excel 預設為「日期」格式再匯出,避免字串解析失敗。
  3. 確認分隔符:標準 CSV 為逗號 ,,若含逗號欄位需雙引號包裹。

核心匯入指令


LOAD DATA INFILE '/path/to/data.csv'
INTO TABLE target_table
CHARACTER SET utf8mb4
FIELDS TERMINATED BY ',' 
OPTIONALLY ENCLOSED BY '"'
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
IGNORE 1 LINES;  -- 跳過標題行

參數詳細解析

參數說明常用值
LOW_PRIORITY延遲執行直到無讀取鎖高併發讀庫時
LOCAL客戶端讀檔傳給 Server (需 local_infile=1)遠端匯入必加
REPLACE / IGNORE主鍵/唯一鍵衝突時覆蓋/忽略視業務決定
FIELDS TERMINATED BY欄位分隔符',' '\t' '|'
ENCLOSED BY欄位包裹字元'"'"
ESCAPED BY跳脫字元'\\'
LINES TERMINATED BY換行符'\n' (Linux) '\r\n' (Windows)
IGNORE n LINES跳過前 n 行1 (標題行)
(col1,col2,...)指定匯入欄位順序CSV 欄位順序不同時

遠端匯入必備配置


# MySQL Server (my.cnf)
[mysqld]
local_infile=1

# Client 連線
mysql --local-infile=1 -uroot -p -h host db_name

避坑檢查清單

  • ✅ CSV 編碼 = CHARACTER SET 參數 = 表/欄位字符集 = 連線字符集。
  • ✅ 日期/時間欄位格式符合 MySQL 標準 (YYYY-MM-DD HH:MM:SS)。
  • ✅ 數值欄位無千分位逗號、貨幣符號。
  • ✅ secure_file_priv 限制目錄,檔案需放在允許路徑 (查詢 SHOW VARIABLES LIKE 'secure_file_priv')。
  • ✅ 大檔分批匯入 (每批 1-5 萬行) 避免長事務鎖表。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved