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

MySQL LOAD DATA LOCAL INFILE 實例:Windows 路徑、行終止符 \r\n、忽略標題行完整示範

     編輯:MySQL 資料庫相關知識

Windows 環境 LOAD DATA 實戰範例

本地客戶端 (Windows) 透過 LOAD DATA LOCAL INFILE 將文字檔導入遠端/本地 MySQL,需注意路徑格式、行終止符、標題行處理。

環境與資料

  • 目標表 pet:欄位 name, owner, species, sex, birth, death。
  • 資料檔 D:/data.txt (UTF-8 編碼),欄位以 Tab 分隔,行尾 \r\n,第一行標題,\N 代表 NULL。

導入命令

LOAD DATA LOCAL INFILE 'D:/data.txt'
  INTO TABLE pet
  FIELDS TERMINATED BY '\t'
  LINES TERMINATED BY '\r\n'
  IGNORE 1 LINES;

參數解析

參數值說明
LOCAL是客戶端讀檔,需 mysql --local-infile=1 啟動
FIELDS TERMINATED BY'\t'欄位分隔符 (Tab),CSV 用 ','
LINES TERMINATED BY'\r\n'Windows 行尾 (CRLF),Linux 用 '\n'
IGNORE 1 LINES1跳過第一行標題
NULL 處理\N檔案中用 \N (兩字元) 表示 NULL,MySQL 自動識別

客戶端啟動參數

# 必須加 --local-infile=1
mysql --local-infile=1 -uroot -p -h 127.0.0.1 database_name
# 或在 my.cnf [mysql] 區段永久啟用
[mysql]
local-infile=1

常見錯誤與解決

錯誤原因解決
ERROR 1148 (42000): The used command is not allowed with this MySQL version客戶端未啟用 --local-infile=1加啟動參數或配置文件啟用
ERROR 13 (HY000): Can't get stat of 'file.txt' (Errcode: 2)非 LOCAL 模式下伺服器找不到檔案改用 LOCAL 或將檔案放至伺服器 secure_file_priv 目錄
資料亂碼檔案編碼與表/連線字元集不一致檔案存 UTF-8,指定 CHARACTER SET utf8mb4,連線 SET NAMES utf8mb4
行數對不上行尾符錯誤 (如 Linux 檔用 \r\n)用 file / hexdump -C 檢查行尾,調整 LINES TERMINATED BY

進階:使用者變數轉換 (SET 子句)

LOAD DATA LOCAL INFILE 'D:/data.txt'
  INTO TABLE pet
  FIELDS TERMINATED BY '\t'
  LINES TERMINATED BY '\r\n'
  IGNORE 1 LINES
  (name, owner, species, sex, @birth, @death)
  SET birth = STR_TO_DATE(@birth, '%Y-%m-%d'),
      death = CASE WHEN @death = '\N' THEN NULL ELSE STR_TO_DATE(@death, '%Y-%m-%d') END;
  • 將檔案欄位讀入使用者變數 @var,再用 SET 運算轉型後寫入目標欄位。
  • 支援複雜邏輯:日期格式轉換、條件賦值、衍生欄位計算。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved