我的网站上有1061
用户,我经常删除那些没有付费的用户。我不喜欢它怎么说ID: 304
然后跳到ID:400
…
是否有办法改变系统,所以当我删除某人时,它会将他们的ID
更改为例如305
,然后继续?
这是强迫症,真的让我很烦。
拥有连续编号的id的唯一方法是编写大量代码,并在系统重新构建编号时定期关闭对系统的访问。也就是说,试图得到你想要的结果是非常非常困难和破坏性的。
它没有坏。
不要尝试修复
这不是常见的做法,但你可以执行
ALTER TABLE users AUTO_INCREMENT = 1
每次删除用户
则每个新插入的用户将获得第一个可用的id。我必须再说一遍,这可不好看。您必须确保当一个id被删除时,任何基于或以某种方式连接到该id的东西也必须被删除。
删除用户时,可以运行UPDATE users SET id = id - 1 WHERE id > X order by id ASC
其中X
是被删除用户的ID然后必须更改下一个自动增量ALTER TABLE users SET AUTO_INCREMENT = Y
其中Y
为MAX(id) + 1