我有一个包含auto_incremented字段的表。
通常自动增量的方式是始终以最大值+ 1开始。
例如如果我插入两个记录,自动增量字段最初取1和2作为值。
现在,当我通过明确提到id字段值为100来添加第三行时。
在此之后,如果我添加第四条记录,则自动增量值将为101,而不是3.
我的问题:
在mysql中是否有任何方法可以强制执行自动增量以跟随其系列?
如果遇到重复,则可以跳过它。
答案 0 :(得分:1)
我怀疑是否可以这样做。想象一下这种情况:你插入5行,其中id为1到5,并删除带有id 2到4的行,最后是两行,id为1,id为5.现在你插入另一行。您希望数据库现在使用什么ID,2或6?
我不希望数据库执行前者,因为我的程序可能依赖于某些主键而不是在那里(想想一个带有唯一ID的已删除的博客帖子。你想要吗?有人在点击与该ID对应的网址时看到不同的博客帖子而不是只显示404?)
回到你的问题,DB并不真正知道以下两种情况之间的区别:
当然,您可能有一个用于回收ID的用例,但您必须自己完成。但在此之前,确保你真的想要它:)