2016-09-20 55 views
1

我需要使用LOAD DATA命令將數據從文件加載到表中。 我有一個txt文件,看起來是這樣的:將數據從文件加載到表中

1 "MARCA"#"MODELO"#"MATRICULA"#PRECIO 
    2 "CITROEN"#"PICASSA"#"CPG-2044"#12000 
    3 "CITROEN"#"PICASSA"#"CPR-1762"#12500 
    4 "CITROEN"#"C4"#"FPP-1464"#13500 
    5 "CITROEN"#"C4"#"FDR-4563"#13000 
    6 "CITROEN"#"C3"#"BDF-8856"#8000 
    7 "CITROEN"#"C3"#"BPZ-7878"#7500 
    8 "CITROEN"#"C2"#"CDR-1515"#5000 
    9 "CITROEN"#"C2"#"BCC-3434"#4500 

現在,我的第一個表的結構如下:

mysql> show columns from MARCAS; 
+----------+-------------+------+-----+---------+----------------+ 
| Field | Type  | Null | Key | Default | Extra   | 
+----------+-------------+------+-----+---------+----------------+ 
| ID_MARCA | int(11)  | NO | PRI | NULL | auto_increment | 
| MARCA | varchar(50) | YES |  | NULL |    | 
+----------+-------------+------+-----+---------+----------------+ 

現在,我不真的知道如何將數據導入部分(如什麼,我需要做的只是加載第一「列」我想出是:

load data local infile /myfile.txt 
into table MARCAS 
fields terminated by '#' 
lines terminated by '\n'; 

但只是什麼也不做(除了暫停終端)的 赫爾。請問?

回答

1

您也可以通過將其分配給一個用戶變量 ,而不是分配變量表列丟棄的輸入值: 來源:http://dev.mysql.com/doc/refman/5.7/en/load-data.html

load data local infile '/myfile.txt' 
into table MARCAS 
fields terminated by '#' 
lines terminated by '\n' 
(ID_MARCA, MARCA, @ignore1, @ignore2, @ignore3); 

腳註:
您查詢在你的列名大寫和sql關鍵字小寫的意義上是最不尋常的。通常的事情是相反的!

你說你的mysql控制檯得到暫停,我相信你的意思是,這個查詢鍵入後需要很長時間才能返回。如果你有大量的行,那沒有什麼不尋常的。

+0

謝謝,那確實回答我的問題。然而,我仍然在''FIELDS TERMINATED BY'#'中包含語法錯誤''''''終止了'\ n'STARTED BY'';'並且不能看到我的代碼有什麼問題。 – CNB

+1

對不起,小錯誤。已更正 – e4c5