【发布时间】:2012-06-05 12:19:41
【问题描述】:
我目前正在构建一个简单的用户数据库,我在其中使用 AUTO INCREMENT 来获取唯一的用户 ID。当我删除单个用户时,用户 ID 会出现空白。我很好奇是否可以让自动增量填充这些空白,而不是使用下一个最高的数字:
用户名
1000
1001
1002
1004
现在我插入表中的下一个用户 ID 将是 1005,但我希望它是 1003。这甚至可能吗?
【问题讨论】:
-
有可能。不要这样做。
auto_increment有一个目的,它不是给你漂亮的序列号,而是唯一标识一条记录。如果您需要某种顺序编号,请创建一个触发器并确保您自己具有一致性。篡改auto_increment的原因和影响有很多。 TL;DR:不要这样做而忘记它。 -
为什么要这样做?即使用户 1003 已被删除,如果您重复使用该 id,可能会导致混淆记录是指新的 1003 还是已删除的。
-
真的只是好奇。你如何处理有一天你会达到最大值的事实?或者只是像 LONG INT 一样设置并希望最好?
标签: mysql