MySQL LOAD DATA INFILE解析,mysqlinfile

來源:互聯網
上載者:User

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表現如下:

在分行符號處尋找行邊界 
在定位器處將行分進欄位 
不要期望欄位由任何引號字元封裝 
將由“\”開頭的定位器、分行符號或“\”解釋是欄位值的部分字面字元.

 

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.