Mysql : 自动递增的最高值总是最新的吗?

Mysql : is the auto increment highest value always the most recent?

我有一个数据库,其中的表使用 InnoDB 和一个自动递增字段作为主键。我想知道我是否可以依赖这样一个事实,即使用 auto_increment 的字段的最高值始终是最新的。

在这一点上我没有发现任何清楚的地方。

不总是。如果您插入一个值并删除它,那么 max value 将不是最新的。

我建议你插入东西后使用LAST_INSERT_ID()

For LAST_INSERT_ID(), the most recently generated ID is maintained in the server on a per-connection basis. It is not changed by another client. It is not even changed if you update another AUTO_INCREMENT column with a nonmagic value (that is, a value that is not NULL and not 0).

Source

我在寻找类似问题的答案时偶然发现了这个问题,我相信这个问题有些混乱 - 所以回答:我可以依赖一个事实使用 auto_increment 的字段始终是最新的

根据https://dba.stackexchange.com/questions/60295/why-does-auto-increment-jumps-by-more-than-the-number-of-rows-inserted (auto_increment 列(或 MSSQL 中的 IDENTITY,以及该概念所用的其他名称)的唯一保证是每个值都是唯一的,并且绝不会小于前一个值:因此您可以依赖值进行排序,但你不能依赖它们没有间隙。)

是的,除非您手动更新自动生成的值。