无法将csv文件加载到mysql表中

时间:2013-06-12 13:02:31

标签: mysql load

我正在尝试使用以下命令将csv文件加载到表中:

LOAD DATA INFILE 'tprot.csv' INTO TABLE tprot FIELDS TERMINATED BY ',' LINES TERMINATED BY `'\n' SET id=null;`

并获得以下内容:

ERROR 1054 (42S22): Unknown column 'id' in 'field list'

以下是我表格中的列:

mysql> show columns from tprot;
+-----------+-------------+------+-----+---------+-------+
| Field     | Type        | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| idindex   | int(10)     | YES  |     | NULL    |       |
| correct   | varchar(10) | YES  |     | NULL    |       |
| incorrect | varchar(10) | YES  |     | NULL    |       |
| 1a        | varchar(20) | YES  |     | NULL    |       |
| 2a        | varchar(20) | YES  |     | NULL    |       |
| 3a        | varchar(20) | YES  |     | NULL    |       |
| 4a        | varchar(20) | YES  |     | NULL    |       |
| 5a        | varchar(20) | YES  |     | NULL    |       |
| 6a        | varchar(20) | YES  |     | NULL    |       |
| 7a        | varchar(20) | YES  |     | NULL    |       |
| 8a        | varchar(20) | YES  |     | NULL    |       |
| 9a        | varchar(20) | YES  |     | NULL    |       |
| 10a       | varchar(20) | YES  |     | NULL    |       |
| 11a       | varchar(20) | YES  |     | NULL    |       |
| 12a       | varchar(20) | YES  |     | NULL    |       |
| 13a       | varchar(20) | YES  |     | NULL    |       |
| 14a       | varchar(20) | YES  |     | NULL    |       |
| 15a       | varchar(20) | YES  |     | NULL    |       |
| 16a       | varchar(20) | YES  |     | NULL    |       |
| 17a       | varchar(20) | YES  |     | NULL    |       |
| 18a       | varchar(20) | YES  |     | NULL    |       |
| 19a       | varchar(20) | YES  |     | NULL    |       |
| 20a       | varchar(20) | YES  |     | NULL    |       |
| 21a       | varchar(20) | YES  |     | NULL    |       |
| 22a       | varchar(20) | YES  |     | NULL    |       |
| 23a       | varchar(20) | YES  |     | NULL    |       |
| 24a       | varchar(20) | YES  |     | NULL    |       |
| 25a       | varchar(20) | YES  |     | NULL    |       |
| 26a       | varchar(20) | YES  |     | NULL    |       |
| 27a       | varchar(20) | YES  |     | NULL    |       |
| 28a       | varchar(20) | YES  |     | NULL    |       |
| 29a       | varchar(20) | YES  |     | NULL    |       |
| 30a       | varchar(20) | YES  |     | NULL    |       |
| 31a       | varchar(20) | YES  |     | NULL    |       |
| 32a       | varchar(20) | YES  |     | NULL    |       |
| 33a       | varchar(20) | YES  |     | NULL    |       |
| 34a       | varchar(20) | YES  |     | NULL    |       |
| 35a       | varchar(20) | YES  |     | NULL    |       |
| 36a       | varchar(20) | YES  |     | NULL    |       |
| 37a       | varchar(20) | YES  |     | NULL    |       |
| 38a       | varchar(20) | YES  |     | NULL    |       |
| 39a       | varchar(20) | YES  |     | NULL    |       |
| 40a       | varchar(20) | YES  |     | NULL    |       |
| 41a       | varchar(20) | YES  |     | NULL    |       |
| 42a       | varchar(20) | YES  |     | NULL    |       |
| 43a       | varchar(20) | YES  |     | NULL    |       |
| 44a       | varchar(20) | YES  |     | NULL    |       |
| 45a       | varchar(20) | YES  |     | NULL    |       |
| 46a       | varchar(20) | YES  |     | NULL    |       |
| 47a       | varchar(20) | YES  |     | NULL    |       |
| 48a       | varchar(20) | YES  |     | NULL    |       |
| 49a       | varchar(20) | YES  |     | NULL    |       |
| 50a       | varchar(20) | YES  |     | NULL    |       |
| 51a       | varchar(20) | YES  |     | NULL    |       |
| 52a       | varchar(20) | YES  |     | NULL    |       |
| 53a       | varchar(20) | YES  |     | NULL    |       |
| 54a       | varchar(20) | YES  |     | NULL    |       |
| 55a       | varchar(20) | YES  |     | NULL    |       |
| 56a       | varchar(20) | YES  |     | NULL    |       |
| 57a       | varchar(20) | YES  |     | NULL    |       |
| 58a       | varchar(20) | YES  |     | NULL    |       |
| 59a       | varchar(20) | YES  |     | NULL    |       |
| 60a       | varchar(20) | YES  |     | NULL    |       |
| 61a       | varchar(20) | YES  |     | NULL    |       |
| 62a       | varchar(20) | YES  |     | NULL    |       |
| 63a       | varchar(20) | YES  |     | NULL    |       |
+-----------+-------------+------+-----+---------+-------+
66 rows in set (0.00 sec)

,该文件的链接是:

https://docs.google.com/file/d/0B0iDswLYaZ0zSVFUTlNUV1dMQkU/edit?usp=sharing

为什么我收到此错误消息?

1 个答案:

答案 0 :(得分:1)

您告诉SQL将列'id'设置为null。你的表中没有这样的专栏。

试试这个。

LOAD DATA INFILE 'tprot.csv' INTO TABLE tprot FIELDS TERMINATED BY ',' LINES TERMINATED BY `'\n' SET idindex=null;`

也就是说,这可能导致每行的空ID,而不是导入的值。

完全未经测试,但这是我的第一个假设。

编辑:

也许尝试从命令行使用mysqlimport。

mysqlimport --local --fields-terminated-by=\, --lines-terminated-by=\r\n tprot tprot.csv

参考:http://www.linuxcommand.org/man_pages/mysqlimport1.html