查询重新索引MySQL数据库的主键

时间:2012-04-20 07:54:20

标签: mysql sql auto-increment

我在MySQL中有一个包含主键列的表。

让我们说:

ID | Value
1  | One
2  | Two
6  | Three
8  | Four
9  | Five

我如何得到它:

ID | Value
1  | One
2  | Two
3  | Three
4  | Four
5  | Five

没有其他表格。只是一个。 我只是希望ID能够合适。

有什么建议吗? 一个查询或许......:)

3 个答案:

答案 0 :(得分:38)

通过编写此查询,有一种简单的方法可以完成结果

SET @newid=0;
UPDATE tablename SET primary_key_id=(@newid:=@newid+1) ORDER BY primary_key_id;

此查询将从1

开始重新索引主键

答案 1 :(得分:10)

对我来说,你有两种选择。

1)创建一个新表并复制现有数据。

2)将另一个自动增量字段添加到现有表中,然后删除原始列。

ALTER TABLE tableName ADD NewIdn INT NOT NULL AUTO_INCREMENT KEY

答案 2 :(得分:0)

我在phpmyadmin中通过取消选中A_I框(自动增量设置),单击“保存”,然后再次检查,然后再次单击“保存”来完成此操作。