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

Lea*_*per 20 mysql sql auto-increment

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

让我们说:

ID | Value
1  | One
2  | Two
6  | Three
8  | Four
9  | Five
Run Code Online (Sandbox Code Playgroud)

我如何得到它:

ID | Value
1  | One
2  | Two
3  | Three
4  | Four
5  | Five
Run Code Online (Sandbox Code Playgroud)

没有其他表格.只是一个.我只是想让ID成为一个合适的系列.

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

Yog*_*har 43

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

SET @newid=0;
UPDATE tablename SET primary_key_id=(@newid:=@newid+1) ORDER BY primary_key_id;
Run Code Online (Sandbox Code Playgroud)

此查询将从主键重新索引 1


McG*_*gle 11

在我看来,你有两个选择.

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

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

ALTER TABLE tableName ADD NewIdn INT NOT NULL AUTO_INCREMENT KEY
Run Code Online (Sandbox Code Playgroud)

  • 工作正常..感谢解决方案"dbaseman".. :)不得不先删除ID列,因为它不允许两列使用AUTO_INCREMENT."ALTER TABLE`test` DROP COLUMN`id`" (3认同)