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

MySQL 批次處理與 LOAD DATA INFILE 完整指南

     編輯:MySQL 綜合教學

批次處理:非互動式執行 SQL 腳本

將 SQL 命令寫入文字檔(如 New_Data.sql),每句以分號結尾:


USE Meet_A_Geek;
INSERT INTO Customers (Customer_ID, Last_Name) VALUES (NULL, 'Block');
INSERT INTO Customers (Customer_ID, Last_Name) VALUES (NULL, 'Newton');
INSERT INTO Customers (Customer_ID, Last_Name) VALUES (NULL, 'Simmons');

執行方式

# 確認 mysqld 運行後
bin/mysql -p < /home/mark/New_Data.sql

輸入密碼後自動執行檔案內所有語句。適用:日誌回放、大量資料初始化、結構部署。

LOAD DATA INFILE:命令列/應用程式中高效導入

與 mysqlimport 類似,但可在 mysql 命令列、API 程式中直接呼叫。

基本語法


USE Meet_A_Geek;
LOAD DATA INFILE '/home/mark/data.sql' INTO TABLE Orders;

進階選項

選項功能
LOCAL檔案在客戶端本機,MySQL 自動上傳(免 FTP)
LOW_PRIORITY等待無其他讀取時才插入,降低衝突
REPLACE唯一鍵衝突時以新資料取代舊資料
IGNORE唯一鍵衝突時忽略新資料保留舊資料

欄位/行格式控制(FIELDS/LINES 子句)


LOAD DATA INFILE '/home/mark/Orders.txt' REPLACE INTO TABLE Orders
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\n';
  • TERMINATED BY:欄位分隔符(預設 Tab)
  • ENCLOSED BY:欄位包圍字元(如雙引號)
  • ESCAPED BY:逸出字元(預設反斜線)
  • LINES TERMINATED BY:行結束符(預設換行)

獨家優勢:指定匯入欄位

mysqlimport 做不到,但 LOAD DATA INFILE 可:


LOAD DATA INFILE '/home/Order.txt' INTO TABLE Orders 
(Order_Number, Order_Date, Customer_ID);

Access 遷移 MySQL 時欄位不匹配、需新增欄位,此功能不可或缺。

Microsoft Access 匯入(略)

原文含 Access 遷移章節,此處省略,核心原理同上:匯出 CSV/文字檔再用 LOAD DATA INFILE 指定欄位導入。

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