我有一个.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, ...
答案 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;