MySQL LOAD DATA INFILE解析,mysqlinfile
LOAD DATA [LOW_PRIORITY] [LOCAL] INFILE'file_name.txt' [REPLACE | IGNORE]
INTO TABLE tbl_name
[FIELDS
[TERMINATED BY '\t']
[OPTIONALLY] ENCLOSED BY '']
[ESCAPED BY '\\' ]]
[LINES TERMINATED BY '\n']
[IGNORE number LINES]
[(col_name,...)]
自訂文法
FIELDS和LINES總的使用規則就是(在匯入與匯出的過程中by後面的符號一定要一致)
Load Data InFile 'C:/Data.txt' Into Table `TableTest` Fields Terminated By ','Enclosed By '"' Escaped By '"' Lines Terminated By '\r\n';
Fields Terminated By ',' Enclosed By '"' Escaped By '"'
表示每個欄位用逗號分開,內容包含在雙引號內
Lines Terminated By '\r\n';
表示每條資料用分行符號分開
REPLACE和IGNORE關鍵詞控制對現有的唯一鍵記錄的重複的處理。如果你指定REPLACE,新行將代替有相同的唯一鍵值的現有行。如果你指定IGNORE,跳過有唯一鍵的現有行的重複行的輸入。如果你不指定任何一個選項,當找到重複鍵鍵時,出現一個錯誤,並且文字檔的餘下部分被忽略時
如果你不指定一個FIELDS子句,預設值與如果你這樣寫的相同:
FIELDS TERMINATED BY '\t' ENCLOSED BY ''ESCAPED BY '\\'
如果你不指定一個LINES子句,預設值與如果你這樣寫的相同:
LINES TERMINATED BY '\n'
FIELDS和LINES總的使用規則就是(在匯入與匯出的過程中by後面的符號一定要一致)
換句話說,預設值導致讀取輸入時,LOAD DATA INFILE表現如下:
在分行符號處尋找行邊界
在定位器處將行分進欄位
不要期望欄位由任何引號字元封裝
將由“\”開頭的定位器、分行符號或“\”解釋是欄位值的部分字面字元.