为什么MySQL不应从失败/回滚的事务中恢复主键?

问题描述 投票:0回答:1

在链接上;MySQL autoincrement value increases even when insertion fails due to error

..提到“由于失败/回滚的事务而丢失很少的自动增量值(顺序的间隙)就好了”]

但是...自动增量(主键)中缺少数字意味着表中的容量较小,无法容纳最大记录数。

我的问题:

1)为什么失败的事务不会触发(隐式)回滚主键值?尚未持久;尚未永久。换句话说,为什么在失败的(或回滚的)事务中丢失主键值是可以的?

2)为什么不恢复到原始状态至少应该是MySQL用户的“选择”;开发人员?

mysql transactions rollback
1个回答
0
投票

如果您有多个事务同时在同一个表上进行,并且具有较早自动递增值的事务将被回滚,则自动递增势必会出现空白,否则自动递增处理将更加复杂。

不用担心自动增量值用完了。它不会发生(see maximimum integer value of 2^64-1)。

© www.soinside.com 2019 - 2024. All rights reserved.