为什么输入时会跳过我的第一列?

时间:2014-11-12 00:14:21

标签: mysql csv

我有一个.csv文件,我想通过MySQL加载到表中。如果我的SQL查询为:

CREATE TABLE table_name (
id INT NOT NULL AUTO_INCREMENT,
playerID VARCHAR(40),
class VARCHAR(40),
system VARCHAR(40),
lvl INT,
build VARCHAR(40),
...
PRIMARY KEY (id)
);

然后我的桌子由

组成

id playerID class system lvl build ...

1 monk ps4 70 0 77 ...

如果我在id查询的末尾加上CREATE TABLE

CREATE TABLE table_name (
playerID VARCHAR(40),
class VARCHAR(40),
system VARCHAR(40),
lvl INT,
build VARCHAR(40),
...
id INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (id)
);

然后id字段正确自动递增,并且正确输入了playerID,class等:

playerID class system lvl build ...

Player1 monk ps4 70 0 ...

在任何一种情况下,我在数据中阅读的方式是:

LOAD DATA LOCAL INFILE '/path/to/data.csv'
INTO TABLE table_name
FIELDS TERMINATED  BY ','
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;

所以我假设问题是我正在读取数据,id被发送到.csv文件中的第一个参数,但是如何编辑我的查询以输入自动将主键递增为表中的第一列?

编辑:

.csv文件的基本语法是:

playerID, class, system, lvl, build, ...

player1, monk, ps4, 70, dual, ...

1 个答案:

答案 0 :(得分:1)

您可以指定列列表来处理CSV与表架构不对齐的情况,例如

LOAD DATA LOCAL INFILE '/path/to/data.csv'
INTO TABLE table_name (playerID, class, system, lvl, build)
FIELDS TERMINATED  BY ','
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;

请参阅http://dev.mysql.com/doc/refman/5.0/en/load-data.html