可能重复:
Fragmentation of id's (auto_increment column) in mysql
我的数据库里有这个专栏。让我们假设它的名字是‘三重’。它包含给每个线程的唯一It以进行区分。
6 5 4 3 2 1
假设我删除了id 5和6的线程。
9 8 7 4 3 2
但是当删除后有一个提交时,给这个线程的唯一id是10。而不是5。我认为这是不整洁的。
如何在列中获得尽可能少的值?(在这种情况下,5.)
我认为我可以使用MIN()获得列的最小值,并保留+1,直到得到未使用的唯一值为止,但我认为这太复杂了。
有什么简单的方法吗?
谢谢。
发布于 2012-03-16 19:15:53
因此,为了引用完整性,我不建议重用ids。有了int和bigint的最大限制,您就不应该用尽唯一的值。唯一的值是参考数据库的核心。
这样,您就可以运行一个搜索子例程(而不是触发器)来找到最低可用的id。然后暂时关闭标识插入,插入数据,然后打开标识插入。
有很多理由不这样做!其中包括在同时输入多个值时插入数据之间的所有潜在冲突。
https://stackoverflow.com/questions/9743121
复制相似问题