SELECT ... INTO OUTFILEmysql> SELECT * FROM samp_table INTO OUTFILE 'file_name';
適用於單表資料導出為文字檔,支援自訂分隔符與引用字元。
mysqldumpshell> mysqldump -u root samp_db samp_table > samp.sql
# 只導結構:-d | 只導資料:-t
支援結構與資料分離、多表/多庫批次操作,適合遷移與備份。
mysqlimport -u root samp_db samp_table.txt(檔名必須與表名一致)mysql -u root samp_db < file_name(匯入 mysqldump 輸出的 SQL 腳本)LOAD DATA INFILE 'file_name' INTO TABLE samp_table;datadir:mysqladmin -u root variables 或 SHOW VARIABLES;.frm/.MYD/.MYI 檔案前提:作業系統、MySQL 版本、儲存引擎完全一致。
c:\samp_table.txt:1,張新化,男
2,江先進,女# 方式 A:mysqlimport(命令列)
mysqlimport -u root --fields-terminated-by="," samp_db samp_table.txt
# 方式 B:LOAD DATA INFILE(SQL 端,注意雙反斜線轉義)
LOAD DATA INFILE 'c:\\samp_table.txt' INTO TABLE samp_table
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\r\n';
| 參數 | 用途 | 預設值 |
|---|---|---|
--fields-enclosed-by | 欄位包裹字元(如雙引號) | 無 |
--fields-escaped-by | 特殊字元轉義符 | 無 |
--fields-terminated-by | 欄位分隔符 | Tab (\t) |
--lines-terminated-by | 行結束符(可多字元) | \n |
ENCLOSED BY 並設定 ESCAPED BYcharacter_set_client 一致(建議 UTF-8)FILE 權限與 secure_file_priv 目錄限制LOAD DATA 失敗無回滾:建議先匯入臨時表驗證再重命名對於定期同步或複雜轉換場景,推薦使用 Kettle (PDI)、Talend 或 Python pandas + sqlalchemy 腳本,實現欄位映射、型別轉換、錯誤隔離與增量同步的全自動化管線。