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已经存在 |