在表中插入包含大数据的索引列

时间:2011-10-01 13:03:12

标签: mysql database

现在我有一个包含一些列和大量数据的表:

表1

Column1        Column2  Column3
data1(string)  data2    data3

目前,主键是用字符串键入的column1。我需要添加一个新列Column0和seriel interger,一个真正的索引。我怎么能用mysql索引呢?

2 个答案:

答案 0 :(得分:0)

首先,你必须介绍新专栏:

ALTER TABLE Table1 ADD COLUMN Column0 INTEGER(10)

以您想要的任何方式在新列中插入ID;例如,可以通过脚本完成。

如果这样做,重新定义PK:

ALTER TABLE Table1 DROP PRIMARY KEY;

插入自动增量:

ALTER TABLE Table1 change column Column0 PRIMARY KEY AUTO_INCREMENT;

确保您的auto_increment值为您上次ID的值:

ALTER TABLE Table1 AUTO_INCREMENT = value_of_max_id+1_you_have;

答案 1 :(得分:0)

像这样的东西

//First add a extra column.
ALTER TABLE table1
ADD COLUMN column0 INTEGER NOT NULL;

//Fill the column with incrementing integers in the same order as the old index.
UPDATE table1 SET column0 = @rank:= @rank + 1
CROSS JOIN (SELECT @rank:= 0) init_rank
ORDER BY column1 ASC;

//Remove the old primary key.
ALTER TABLE table1 DROP PRIMARY KEY;

//Set column0 as the new PK.
ALTER TABLE table1 CHANGE COLUMN column0 PRIMARY KEY AUTO_INCREMENT;