重新索引MySQL INT主键并重置AUTO_INCREMENT

Ste*_*ins 3 php mysql database auto-increment

所以我有一个MySQL数据库,我正在使用PHP网站.在几周的发展过程中,我留下了类似的东西:

Table: users

id  | name
-----------
  12| Bob
  34| Jen
 155| John
 154| Kyle
Run Code Online (Sandbox Code Playgroud)

除此之外,还有数百条记录,而且数以千计.

我正在寻找一个脚本,我可以运行将键重命名为最低值(保留各自的行),然后重置AUTO_INCREMENT为下一个id

期望的输出是:

Table: users

id  | name
-----------
   1| Bob
   2| Jen
   3| Kyle
   4| John
Run Code Online (Sandbox Code Playgroud)

ALTER TABLE users AUTO_INCREMENT = 5;

(通知KyleJohn)

我意识到我必须修复任何引用它的东西users.id.

有没有人知道在MySQL或PHP脚本中这样做的方法?

tri*_*san 5

删除id上的索引

做这样的事情:

SET @rank:=0;
update users
set id=@rank:=@rank+1
order by id;
Run Code Online (Sandbox Code Playgroud)

在id上添加索引