好奇为何mybatsi在事务未结束时,可以获得新增数据的id。用mysql语句试试:
目前id到29,下次自增到30
1.开一个事务新增语句,不提交事务
2.新建窗口执行新增
3.第2条语句执行成功,id为31,因为30被第一条语句使用了
4.提交第一条语句事务,记录出现
5.如果第一条语句,事务回滚,则30id不会再被使用,以后新增语句从32开始,可以试试。
6.在新增事务未提交前,可修改事务中 正在新增的数据。
如下,假设预判到新增语句执行后,数据id是29,在事务中修改 29的数据,再提交,结果是新增和修改都成功。