在链接上;MySQL autoincrement value increases even when insertion fails due to error
..提到“由于失败/回滚的事务而丢失很少的自动增量值(顺序的间隙)就好了”]
但是...自动增量(主键)中缺少数字意味着表中的容量较小,无法容纳最大记录数。
我的问题:
1)为什么失败的事务不会触发(隐式)回滚主键值?尚未持久;尚未永久。换句话说,为什么在失败的(或回滚的)事务中丢失主键值是可以的?
2)为什么不恢复到原始状态至少应该是MySQL用户的“选择”;开发人员?
如果您有多个事务同时在同一个表上进行,并且具有较早自动递增值的事务将被回滚,则自动递增势必会出现空白,否则自动递增处理将更加复杂。
不用担心自动增量值用完了。它不会发生(see maximimum integer value of 2^64-1)。