Php 删除一行时如何更改总体索引

Php 删除一行时如何更改总体索引,php,mysql,sql,Php,Mysql,Sql,我的表结构(用户): ID(索引,自动递增) 名字 以下是此表中的当前行(用户): 当我使用php删除第2行时,这是Mike的行。如何使用php将harry的ID更改为2,将christine的ID更改为3 所以它看起来不像: ID NAME ----------- 1 John 3 Harry 4 Christine ID NAME --------- 1 John 2 Harry 3 Christine …所以它看起来像: ID NA

我的表结构(用户):

  • ID(索引,自动递增)
  • 名字
以下是此表中的当前行(用户):

当我使用php删除第2行时,这是Mike的行。如何使用php将harry的ID更改为2,将christine的ID更改为3

所以它看起来不像:

ID   NAME 
-----------
1    John
3    Harry
4    Christine
ID   NAME
---------
1    John
2    Harry
3    Christine
…所以它看起来像:

ID   NAME 
-----------
1    John
3    Harry
4    Christine
ID   NAME
---------
1    John
2    Harry
3    Christine

重置
AUTO_INCREMENT
列不好。特别是当您使用关系数据库时

但是,如果需要,则在删除之前需要获得
自动增量
列的最大值,删除之后需要根据最大值重置自动增量字段

ALTER TABLE tablename AUTO_INCREMENT = value

这会将要使用的下一个自动增量重置为给定值

你可能不想那样做;这通常是个坏主意。你想完成什么?为什么你认为你需要更改ID?你想破坏你的数据库吗?不要这样做,特别是如果ID是你的主键。你想更改数据库或html页面中的ID吗?我同意Ryan的看法。在大多数情况下,这会产生非常坏的影响。如果有另一个表包含任意实体以及拥有它们的用户的用户id,那么更改用户id将导致harry失去其实体的所有权,并获得Mike实体的所有权