0

我有在 MySQL 3.23.23 时创建的代码当时 MySQL AUTO_INCREMENT 重用了最小的已发布 AUTO_INCREMENT 值。

它可以生成 100、101、102、103、

删除 101

101、104、105 _

我们使用特殊的表来生成 ID,通过 LOCKING 表,UPDATE IDTABLE SET id = id + 1 WHERE key = 'table_name'; SELECT id ... ; UNLOCK;

根据mysql docs,不再需要这样的额外表。但是依靠 MySQL AUTO_INCREMENT 有多可靠呢?

AUTO_INCREMENT 行为存储引擎是特定的吗?它在 SQL 规范中有描述吗?

这些 ID 非常重要,即使旧记录被删除,它们也必须增加并且是唯一的。(如购物车软件中的订单号)


可能是卡兰坎所说的问题

插入100、101、102、103、104

删除104

插入104 , 105, 106

10 年前,我们在 MySQL 中肯定有某种关于 AUTO_INCREMENT 的错误。我们可以删除所有记录,但 AUTO_INCREMENT 必须保留。

这就是我问这个的原因。

4

0 回答 0