所以我有一个用于 PHP 站点的 MySQL 数据库。在数周的开发过程中,我得到了类似的东西:
Table: users
id | name
-----------
12| Bob
34| Jen
155| John
154| Kyle
除此之外还有数百条记录并且 ID 数以千计。
我正在寻找一个我可以运行的脚本来将键重命名为它们的最小值(保留它们各自的行),然后将 AUTO_INCREMENT
重置为下一个 id
期望的输出是:
Table: users
id | name
-----------
1| Bob
2| Jen
3| Kyle
4| John
ALTER TABLE users AUTO_INCREMENT = 5;
(注意 Kyle
和 John
)
我意识到我必须修复所有引用 users.id
的内容。
有谁知道在 MySQL 中或使用 PHP 脚本执行此操作的方法吗?
最佳答案
删除 id 上的索引
做这样的事情:
SET @rank:=0;
update users
set id=@rank:=@rank+1
order by id;
在id上添加索引
关于php - 重新索引 MySQL INT 主键并重置 AUTO_INCREMENT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6629402/