zoukankan      html  css  js  c++  java
  • 我现在A函数开启事务,然后调用B函数,B函数中也开启了事务

    有一点要知道,就是MYSQL不支持事务嵌套。
    所以PHP再包装,也是一个事务

    laravel的事务嵌套,就是一个栈。
    事务A开启事务(真实开启)
    事务B开启事务(只是标记,并非真实开启了事务)
    事务B提交事务(只是标记,并非真的提交了事务)
    事务A提交事务(真实提交)

    事务A开启事务(真实开启)
    事务B开启事务(只是标记,并非真实开启了事务)
    事务B提交事务(只是标记,并非真的提交了事务)
    事务A回滚事务(真实回滚)

    从这个栈就能看出来,只有第一次开启事务,和第一次回滚事务,和最后一次提交事务,是真实操作了数据库,其他事务操作都是假的,只是做了标记。

    https://github.com/Zhucola/yii_core_debug/blob/master/%5B%E6%95%B0%E6%8D%AE%E5%BA%93%E7%B3%BB%E5%88%97%E4%B8%89%5D%E4%BA%8B%E5%8A%A1%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90.md

    参考:https://learnku.com/articles/15618/transactions-implementation-of-nested-transaction-for-laravel

  • 相关阅读:
    Ubuntu安装php7.0环境
    PHP-FPM参数详情
    phpize是干嘛的
    Ubuntu忘记密码
    Ubuntu下面删除和卸载软件
    Js验证正则表达式
    JS发送验证码;并设置cookie
    Shell脚本之sed的使用
    Bash基本功能:输入输出重定向
    shell常用快捷键
  • 原文地址:https://www.cnblogs.com/lxwphp/p/11077717.html
Copyright © 2011-2022 走看看