php - 从具有 "AUTO_INCREMENT"的字段中获取未使用的 id - mysql

标签 php mysql auto-increment

假设我在表中有一个名为idtb_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/

相关文章:

javascript - 为什么我用xmlhttprequest抓取数据时,主键跳动很大?

php - 选择计数 (`id` )FROM `table` WHERE merk LIKE '%$searchq%'

php - 如何在没有自动 DocBlock 格式的情况下在 NetBeans 中进行多行注释?

mysql - 无法连接到 MySQL

mysql 查询后更新表

sql - 将自动增量值添加到具有一列的表

mysql - 将自动递增字段设置回其原始值

PHP 字符串为空,除非回显

php - SQL 清理和 PHP

php - 通过连接对多列进行分组