将数据从文件加载到表中

时间:2016-09-20 13:38:29

标签: mysql sql file import

我需要使用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 个答案:

答案 0 :(得分: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控制台被暂停,我相信你的意思是在输入这个查询后需要很长时间才能返回。如果你有大量的行,那就没什么不寻常了。