我在MySQL 3.23.23中创建了代码 那时MySQL AUTO_INCREMENT重用了最小的释放AUTO_INCREMENT值。
它可以生成 100,101,102,103,
删除101
101 ,104,105
我们使用特殊表格通过LOCKING表UPDATE IDTABLE SET id = id + 1 WHERE key = 'table_name'; SELECT id ... ; UNLOCK;
根据mysql文档,这样的额外表格不再需要了。但依赖MySQL AUTO_INCREMENT如何可靠?
AUTO_INCREMENT行为存储引擎是否具体? 它是在SQL规范中描述的吗?
这些ID非常重要,即使删除旧记录,它们也必须增加并且是唯一的。 (如购物车软件中的订单号)
可能是卡兰坎说的问题
插入100,101,102,103, 104
删除 104
插入 104 ,105,106
我们在10年前的MySQL中肯定遇到过某种与AUTO_INCREMENT有关的错误。 我们可以删除所有记录,但必须保留AUTO_INCREMENT。
这就是我提出这个问题的原因。