mysql 自增值不能回退

MySql 主键不连续的原因之一是自增值不能回退

设当前自增值=2,此时并发两个事务T1,T2。T1先申请到自增值,插入ID=3,自增值更为4

Tx1 Tx2
T1 申请到自增值=2,set id =2, 更新自增值=3
T2 插入数据失败 申请到自增值=3,set id=3,更新自增值=4
T3 如果让自增值回退到=2 插入数据成功
T4 申请到自增值=2,set id =2, 更新自增值=3
T5 插入数据成功 申请到自增值=3,set id=3,更新自增值=4
T6 插入数据失败,插入语句报错“主键冲突” id=3已经存在