mysql数据库主键不是事务性质的,所以当没有提交事务时,主键的自动递增是不会回滚的,之所以不把主键自增加入到事务管理,可以看一下例子
//transaction1
begain transaction
insert into A
commit
//transaction2
begain transaction
insert into A
commit
当两次给A表插入数据时间间隔1毫秒,事务1插入进去id自增1了,还没等事务1完成,事务2也开始插入数据,这时他们拿到的id都还是没有自增的、同一个id,所以这会造成主键的重复,所以mysql没有将主键纳入事务管理,只要有数据插入,不管事务是否提交完成,主键先自增1,这样就不会造成上述的问题.