【问题标题】:Fill in gaps in ID column in MySQL [duplicate]填补MySQL中ID列的空白[重复]
【发布时间】:2012-10-19 09:07:03
【问题描述】:

可能重复:
How to fill in the “holes” in auto-incremenet fields?

我在删除数据库中的用户时遇到问题,ID 列总是跳过并继续增加,即使列内有跳过的数字。

例如:

+---------+----------+---------+
|   ID    |  first   |   last  |
+---------+----------+---------+
|    1    |    a     |    a    |
+---------+----------+---------+
|    3    |    c     |    c    |
+---------+----------+---------+
|    4    |    d     |    d    |
+---------+----------+---------+
|    5    |    e     |    e    |
+---------+----------+---------+
|    7    |    g     |    g    |
+---------+----------+---------+
|    9    |    i     |    i    |
+---------+----------+---------+

在创建新用户时,是否可以自动填充我的 ID 列上的空白? 还是只是调整列表中剩余的用户来填补空白?

【问题讨论】:

  • id 应该是这样工作的。

标签: mysql


【解决方案1】:

这就是自动递增列的工作方式。这些差距不会导致任何性能问题或任何问题。间隙可能导致问题的唯一方法是,如果您经常删除行并接近列的最大值(可能是 40 亿)。如果要更改 id 以填补空白,则必须确保对 ID 的每个引用都已更新,这通常不值得麻烦。总之,您可以忽略这些差距。

【讨论】:

    猜你喜欢
    • 2018-10-28
    • 1970-01-01
    • 2015-08-19
    • 2010-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-05
    相关资源
    最近更新 更多