我的数据库中有这个列.假设它的名字是'threadid'.它包含为每个线程分配的唯一ID.
threadid 9 8 7 6 5 4 3 2 1
假设我删除了ID为5和6的线程.
threadid 9 8 7 4 3 2 1
但是当删除后有一个提交时,给该线程的唯一ID是10.不是5.我认为这不是很整洁.
如何在列中获得尽可能少的值?(在这种情况下,5.)
我想我可以使用MIN()获得列的最小值并保持+1,直到我得到未使用的唯一值,但我认为这太复杂了.
有没有简单的方法来做到这一点?
谢谢.
我有一个MySQL 5服务器和一个表,在id字段(主键)上有一个自动增量.现在我想在两者之间添加一条记录,所以我必须将所有其他ID增加一个.这是我试过的:
UPDATE myTable SET id=id+1 WHERE id >= 53
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为例如id = 52的记录已经存在.我怎样才能做到这一点?如果他从最后一个条目开始并进行更新,我认为应该可行.但是怎么样?
我现在正在处理的数据库有数十万条记录的添加和删除,因此,自动递增的关键数十万个大数字和自动递增的数字远达数十亿之间存在差距。
这些数字永远不会被存储来引用单个记录,而是在进行即时计算时用于引用记录。
是否有任何理由删除这些间隙并重置自动增量数字,或者这是无关紧要的?
id 字段是一个 unsigned int,我应该将其增加到一个 unsigned big int 吗?据我了解,现在如果达到 4,294,967,295 就会崩溃。