gpt4 book ai didi

mysql - 如何阻止 auto_increment 将下一个数字始终设置为 maxnumber + 1

转载 作者:行者123 更新时间:2023-11-29 12:03:17 26 4
gpt4 key购买 nike

我有一个带有自动增量字段的表。

自动增量的正常工作方式是始终从最大值 + 1 开始。

例如如果我插入两条记录,自动增量字段的初始值将是 1 和 2。
现在,当我通过明确提及 id 字段值为 100 来添加第三行时。此后,如果我添加第四条记录,自动增量值将是 101,而不是 3。

我的问题:

mysql中有没有办法强制自动增量跟随其系列?
如果遇到重复,它可以跳过它。

最佳答案

我怀疑这是否可以做到。想象一下这样的场景:您插入 id 为 1 到 5 的 5 行,并删除 id 为 2 到 4 的行,最后得到两行,id 为 1 的行和 id 5 的行。现在您插入另一行。您希望数据库现在使用什么 ID,2 还是 6?

我不希望数据库执行前者,因为我的程序可能依赖于一些不存在的主键(想想一篇具有唯一 ID 的已删除博客文章。您想要当某人点击与该 ID 对应的 URL 时会看到不同的博文,而不是仅仅显示 404?)

回到你的问题,数据库并不真正知道以下两种情况之间的区别:

  • 像您提到的那样,手动插入了 id = 100 的行。
  • 现有 100 行 ID 为 1 到 100,第 3 到 99 行已删除。

当然,您可能有回收 id 的用例,但您必须自己动手。但在此之前,请确保您确实想要它:)

关于mysql - 如何阻止 auto_increment 将下一个数字始终设置为 maxnumber + 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31985556/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com