【发布时间】:2014-03-05 23:30:21
【问题描述】:
我可以自动调整数据库中自增字段的值吗?
我有一个名为“post”的表,其中有一个名为“pid”的字段,该字段设置为自动递增。 用户稍后可能会删除此表中的帖子,但不会调整自动增加的值。有没有办法在每次删除帖子时调整 pid 字段?
例如:如果我有 4 个条目:pid=1,2,3,4(pid-auto-increment) 现在如果我删除 2,有没有办法更新 3 到 2 和 4 到 3 等等?
【问题讨论】:
-
这个问题经常被问到。自增 id 旨在保证唯一性,而不是顺序性。如果您需要顺序排序,最好在输出时生成,因为自增主键可能会影响许多其他列。最好不要重新排序以填补删除漏洞。
-
自动递增的主键是有原因的。如果您篡改它们,您将面临破坏数据完整性的风险。换句话说,当你删除一条记录时,你应该有“漏洞”。如果您需要以连续不间断的顺序显示您的记录编号,请在您的代码中执行此操作。
-
Using unused primary keys 的可能重复项
-
@MichaelBerkowski AFAIK,当您将一个问题作为另一个问题的副本关闭时,它本身就是一个副本,这不是一种好的做法。如果您使用的问题,这个链条很长。
标签: mysql auto-increment