我需要使用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';
但这只是什么都没做(除了暂停终端)。 请帮忙吗?
答案 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控制台被暂停,我相信你的意思是在输入这个查询后需要很长时间才能返回。如果你有大量的行,那就没什么不寻常了。