首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL LOAD DATA 導入文字檔實戰:欄位分隔符、換行符與實操截圖詳解

     編輯:MySQL 綜合教學

MySQL LOAD DATA 導入文字檔實戰

大量資料初始化時,LOAD DATA INFILE 比 INSERT 快數十倍。本文以實際案例演示:建表 → 準備文字檔 → 執行導入 → 驗證結果,重點講解欄位/行分隔符參數設定。

操作步驟

1. 建立目標表 (結構需與文字檔欄位一一對應)

CREATE TABLE `field` (
  `id` INT AUTO_INCREMENT PRIMARY KEY,
  `col1` VARCHAR(50),
  `col2` INT,
  `col3` DATE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

2. 準備文字檔 D:/field.txt

內容範例 (欄位以 Tab \t 分隔,行尾 \n):

value1    100    2023-01-01
value2    200    2023-01-02
value3    300    2023-01-03

3. 執行導入 SQL

LOAD DATA INFILE 'D:/field.txt' 
INTO TABLE `field` 
FIELDS TERMINATED BY '\t' 
LINES TERMINATED BY '\n'
(`col1`, `col2`, `col3`);  -- 明確指定欄位順序,跳過自增 id

4. 參數詳解

子句說明本例設定
FIELDS TERMINATED BY欄位分隔符'\t' (Tab)
FIELDS ENCLOSED BY欄位包圍字元 (如 CSV 雙引號)本例無,省略
FIELDS ESCAPED BY轉義字元預設 \\
LINES TERMINATED BY行結束符'\n' (Linux) 或 '\r\n' (Windows)
IGNORE n LINES跳過前 n 行 (如標題行)本例無標題,省略
(col_list)指定導入目標欄位順序對應文字檔欄位,自增/預設值欄位可省略

5. 驗證結果

SELECT COUNT(*) FROM `field`;  -- 應返回 3
SELECT * FROM `field` LIMIT 5;

進階場景與避坑指南

  • CSV 檔案導入: FIELDS TERMINATED BY ',' ENCLOSED BY '"' ESCAPED BY '\\\\'。
  • Windows 路徑: 建議用正斜線 'D:/data.txt' 或雙反斜線 'D:\\\\data.txt'。
  • 權限問題: 需 FILE 權限;若報 ERROR 1290,檢查 secure_file_priv 變數限制目錄,或將檔案放入該目錄。
  • 本地檔案導入: 加上 LOCAL 關鍵字 (LOAD DATA LOCAL INFILE ...) 讓客戶端讀取檔案並傳給伺服器,需客戶端與伺服器均啟用 local_infile=1。
  • 大檔優化: 導入前 SET autocommit=0; SET unique_checks=0; SET foreign_key_checks=0;,導入後恢復並 COMMIT;,可大幅提速。

小結: 掌握 LOAD DATA 分隔符參數與權限設定,是高效完成資料遷移、ETL 初始化的核心技能。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved