Php MySQL和删除行时的自动增量

Php MySQL和删除行时的自动增量,php,mysql,auto-increment,Php,Mysql,Auto Increment,我的MySQL数据库有问题。我找了很长时间,但什么也帮不了我。 我的数据库有三列:id、用户名和密码。 例如,数据库中有3行 1, test1, testpw1 2, test2, testpw2 3, test3, testpw3 删除第2行时,如何更改整个数据库中的id(自动增量) 现在是这样的: 1, test1, testpw1 3, test3, testpw3 1, test1, testpw1 2, test3, testpw3 我希望它是这样的: 1, test1, t

我的MySQL数据库有问题。我找了很长时间,但什么也帮不了我。 我的数据库有三列:id、用户名和密码。 例如,数据库中有3行

1, test1, testpw1
2, test2, testpw2
3, test3, testpw3
删除第2行时,如何更改整个数据库中的id(自动增量)

现在是这样的:

1, test1, testpw1

3, test3, testpw3
1, test1, testpw1

2, test3, testpw3
我希望它是这样的:

1, test1, testpw1

3, test3, testpw3
1, test1, testpw1

2, test3, testpw3
非常感谢
Jannes

您要做的是创建另一个名为“deleteFlag”的列,并将其设置为1或0数据值,并且在显示数据时,确保将deleteFlag设置为1

删除行时,将deleteFlag设置为0。
因此,在显示数据时,您的代码应设置为仅显示带1的deleteFlags。

不要-这不应该是必需的,PK值应是唯一的,不用于订单或维护序列;更改自动增量PK值可能会对相关表产生不利影响,而这不是自动增量的工作方式。I您将更改id,您必须手动更改每条记录的id。自动增量没有任何有意义的数值(可能除了一些通常有效的订购保证的外观),但它经常表明对这种代理密钥的误解,我不推荐它;调整主键值不太可能是最佳方法。如果您能解释一下为什么要删除间距,我们可能会提供一个有用的替代方案。是否可以“重置”自动增量列,使每一行都有一个新的id?实际上,这不是我想要的。难道没有办法像我上面说的那样去做吗?也许不是用自动增量。。。