MySQL加载数据Infile自动递增ID值

Jos*_*ree 8 mysql indexing auto-increment load-data-infile

我想在我的表中插入一个ID列,并从文本文件中获取该表的数据.例如,我的文本文件是这样的:

12    1212    4989    121
121   23      123     110
789   99      234     544
...
Run Code Online (Sandbox Code Playgroud)

它有大约20M行.我想将此数据插入表中,并为其包含一个自动递增的ID值列.我将使用"加载数据infile",但我想创建我的表,如下所示:

id    a     b       c       d
---   ---   ---     ---     ---  
1    12    1212    4989    121
2    121   23      123     110
3    789   99      234     544
...
Run Code Online (Sandbox Code Playgroud)

如何使用mysql(workbench)创建这种表

Jos*_*ree 18

首先,创建具有列ID的表具有自动增量属性:

CREATE TABLE mytable (
     id MEDIUMINT NOT NULL AUTO_INCREMENT,
     a INT NULL,
     b INT NULL,
     c INT NULL,
     d INT NULL,
     PRIMARY KEY (id)
) ENGINE=MyISAM;
Run Code Online (Sandbox Code Playgroud)

那么你应该通过给出列名来将数据加载到带有加载数据infile的表中:

LOAD DATA LOCAL INFILE 'C:/DATA/mydata.txt'
INTO TABLE test.mytable
FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n'
(a, b, c, d) SET ID = NULL;
Run Code Online (Sandbox Code Playgroud)

请参阅:如何在mysql中加载数据INFILE,第一个col是Auto Increment?


sou*_*ode 0

这可以为你做..

     load data local infile 'data.csv' into table tbl fields terminated by ','
     enclosed by '"'
     fields terminated by '\t'
     lines terminated by '\n'
     (a,b,c,d)
Run Code Online (Sandbox Code Playgroud)

有关更多参考,请参阅此链接