2016-09-20 54 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