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

时间:2012-12-29 16:37:45

标签: mysql indexing auto-increment load-data-infile

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

12    1212    4989    121
121   23      123     110
789   99      234     544
...

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

id    a     b       c       d
---   ---   ---     ---     ---  
1    12    1212    4989    121
2    121   23      123     110
3    789   99      234     544
...

如何使用mysql(workbench)

创建这种表

2 个答案:

答案 0 :(得分: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;

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

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;

请参阅:How to LOAD DATA INFILE in mysql with first col being Auto Increment?

答案 1 :(得分: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)

有关详情,请参阅this link