如果存储过程中没有执行commit,那么spring容器一旦发生了事务回滚,存储过程执行的操作也会回滚。如果存储过程执行了commit,那么数据库自身的事务此时已提交,这时即使在spring容器中托管了事务,并且由于其他原因导致service代码中产生异常而自动回滚,但此存储过程是不会回滚,因为数据自身的事务已在存储过程执行完毕前提交了, 也就是说此时spring回滚对存储过程的操作是无效的了。
Posted 林夕Emma
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql存储过程中最后有commit和没有commit 是有所不同的。(为测试但是碰到过这个问题)相关的知识,希望对你有一定的参考价值。
如果存储过程中没有执行commit,那么spring容器一旦发生了事务回滚,存储过程执行的操作也会回滚。如果存储过程执行了commit,那么数据库自身的事务此时已提交,这时即使在spring容器中托管了事务,并且由于其他原因导致service代码中产生异常而自动回滚,但此存储过程是不会回滚,因为数据自身的事务已在存储过程执行完毕前提交了, 也就是说此时spring回滚对存储过程的操作是无效的了。
以上是关于mysql存储过程中最后有commit和没有commit 是有所不同的。(为测试但是碰到过这个问题)的主要内容,如果未能解决你的问题,请参考以下文章