【发布时间】:2012-10-19 19:31:28
【问题描述】:
我们目前正在对条目不断进出的表使用自动增量。这样做的问题是,最终自动增量 id 会变得很大,因为这就是自动增量的工作原理。
我们希望它始终为最后一个条目添加 +1。
例如:
我们有 4 个条目,id 4 被删除。下一个添加的条目应该得到 id 4,而不是 5。
我不确定以前是否有人问过这个问题。但是在搜索之后,我只能找到关于如何获得下一个自增数的解决方案,这根本不是我想要的。
【问题讨论】:
-
自增有什么问题?
-
我强烈反对这种方案。如果您重复使用 id,您最终可能会引用错误的行,而不是损坏的引用。调试起来非常困难,并且可能导致安全漏洞。
-
自动增量值有什么问题?它就是为此而设计的,无论它变得多么“巨大”;并且使用最后一个条目 + 1 “滚动你自己的”会给你带来不断的问题
-
你能解释一下你为什么这样做吗?自动添加的想法是让您始终拥有数据库表的唯一键。通常,这些键不需要更改(无论数字如何,它都不会减慢您的数据库速度 - 即使数字是 1、2、3 和 7463,仍然只有 4 个条目)。
-
这确实经常被问到,答案总是一样的——尝试填补空白是非常不可取的。许多动态重新编号的解决方案都容易出现竞争条件。
标签: php mysql auto-increment