假设我在表中有一个名为id
的tb_example
字段。此 id
具有 AUTO_INCREMENT 属性。所以在每一个新的插入中它都会像 1,2,3,..... 等等。
现在假设有 10 行数据,id 为 1-10。有人删除了 id=5
处的数据。现在对于下一个插入,我想在 position 5 NOT IN 11 中插入数据我还想在插入之前获取 unused id
。这意味着我想获取未使用的 id
并使用类似查询的方式插入下一个数据
"INSERT INTO tb_example .......... WHERE id=".$unused_id;
是否有可能通过任何简单的函数或过程获取未使用的 id
? 是否有可能获取范围内未使用的 id
?就像我想知道 100 到 200 之间是否存在未使用的 id
?或者我是否需要找到具有逻辑编码的 id
?请帮忙....
最佳答案
摩擦最小的方法可能是有一个单独的表来记录您每次删除记录时插入的可重复使用的 ID(最好使用触发器)。当你想插入一条新记录时,看看这张表,看看是否有可以重复使用的 ID。如果是这样,请使用它们;如果没有,只需正常插入即可。这也应该允许您轻松找到范围内未使用的 ID。如果存储每个可回收 ID 的后备表中的列已编入索引,这应该很快。
关于php - 从具有 "AUTO_INCREMENT"的字段中获取未使用的 id - mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20867092/