小编典典

如何重用auto_increment值?

mysql

我的数据库中有此列。假设其名称为“ threadid”。它包含赋予每个线程以区别的唯一ID。

线程号9 8 7 6 5 4 3 2 1

假设我已删除ID为5和6的线程。

线程号9 8 7 4 3 2 1

但是,当删除后有一个提交时,给该线程的唯一ID是10。不是5。我认为这不是整齐的。

如何获得列中的最小可能值?(在这种情况下,为5.)

我认为我可以使用MIN()获得列的最小值,并保持+1直到获得未使用的唯一值,但是我认为这太复杂了。

有没有简单的方法可以做到这一点?

谢谢。


阅读 375

收藏
2020-05-17

共1个答案

小编典典

我同意所有人的其他观点,实现自己的最小查找公开号码是一个非常糟糕的主意。但是在我工作的地方,给我们一个封闭的数字集,当释放一个数字时,我们必须重用。

这是我们的方法。

我们不会删除该行,而是将每列的所有值都设置为null,所以您要做的是在SELECT min(id)WHERE columnA IS
NULL的情况下进行操作,如果返回值,则将重用,否则,插入一个新行。

2020-05-17