在使用mysql的时候,将ID设置成了AutoIncremental(AI)自动累加。这个的作用就是每次插入新的数据的时候不需要告知这一行的数据的ID,数据库直接根据前一个ID值+1作为新插入数据的ID。
在我的程序中,包含了出错回滚的代码,跑了一个晚上回来发现,ID值突变了,比如上一个ID还是1000下一个就变成了2000。
查看了统计数据,发现夜间很长一段时间一直都在插入操作,那么插入数据时候ID自加的操作应该是执行了。后来才想到,可能是回滚之后默认ID的值已经增加了,尝试了一下,果然如此。
insert之后rollback,再insert时ID已经比上一个ID大2了。
想想也是,要将能够把大部分操作回滚的机制连带AI一起回滚是不好实现的,谁知道回滚的时候要不要将AI的值-1呢。
mysql rollback与AI
最新推荐文章于 2023-10-16 20:58:58 发布