什么是嵌套事务? 一般情况下我们都是一个
begin
, 一个commit
或rollBack
, 但是有可能我们有种场景需要begin
然后在事务里面再开一个事务, 这就是嵌套事务.MySQL
嵌套事务支持MySQL
里面有个savepoint
关键字, 可以模拟嵌套事务, 但事实上并不是真正的嵌套事务, 仍然是一个事务.savepoint
的用处, 我们可以回滚事务内的部分修改
Laravel
嵌套事务使用DB::beginTransaction()
里面再次使用DB::beginTransaction()
即可, 但需要注意开启事务的次数需要和commit
或rollBack
的次数对应