萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> MySQL用load data命令進行數據導入方法

MySQL用load data命令進行數據導入方法

load data命令是mysql中自帶的一個數據導入導出命令,他可以快速導入上千萬級別的數據並且不卡機哦,下面我來給大家介紹load data命令用法。

LOAD DATA語法說明:

LOAD DATA INFILE句法

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,...)]

最簡單的方法

 代碼如下 復制代碼

mysql>load data local infile "D:/ab.txt" into table mytbl(name,age);


MySQL支持load data命令的數據導入,該方式比直接的insert的效率要高,按照官方的說法是要比insert語句快上20倍。使用方式如下:

 代碼如下 復制代碼 mysql>load data local infile "D:/ab.txt" into table mytbl(name,age);   

  

使用上述的命令就可以將D:/ab.txt文件的內容導入到表mytbl中,其中name和age是表mytbl的字段,對應ab.txt文件中每行的數據。如果編譯安裝mysql時沒有指定–enable-local-infile,那麼在使用上述命令時會報如下錯誤:

ERROR 1148 (42000): The used command is not allowed with this MySQL version     

解決方式有兩種,一是重新編譯安裝加上上面的參數,而是直接用命令行執行,如下:

 代碼如下 復制代碼

mysql -uroot -proot  mydb_name --local-infile=1 -e 'load data local infile "D:/ab.txt" into table mytbl(name,age)'     

測試了一把,導入300萬條數據時,使用load data命令的時間花銷大概在3分鐘左右,還是非常不錯的!

導入時一些常用錯誤

系統報錯:

Data truncated for column 'f3' at row 1

可能是由於字段定義為double型,而文本文件中是空值,將文本文件更新為:

abc;cdef;2;

再次導入,報錯如下:

Row 1 doesn't contain data for all columns

分析原因可能是由於表中字段一共是5個,而在文本數據源中有了4個字段,少1個字段。

Data truncated for column 'f3' at row 1 ,

我理解系統應當按空值處理,即在數據庫中這個字段default值為“-1”,

解決辦法

 代碼如下 復制代碼

load data infile 'D:\my_program\Tek_sig\example_data1.txt'
into table TABLE_NAME
FIELDS TERMINATED BY ';'
LINES TERMINATED BY 'n'
(f1,f2,f3,f4)

copyright © 萬盛學電腦網 all rights reserved