我现在A函数开启事务,然后调用B函数,B函数中也开启了事务

我现在A函数开启事务,然后调用B函数,B函数中也开启了事务

大家好,又见面了,我是全栈君。

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

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

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

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

我现在A函数开启事务,然后调用B函数,B函数中也开启了事务

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

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/112276.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 二小姐对群环域的理解

    二小姐对群环域的理解从本质上来看,群=非空集合+二元运算,群的定义主要包括四个方面:封闭性:二元运算的定义就可以满足这个性质 结合律:可以确保多个元素运算时得到唯一的结果,不受运算先后的影响,从而有(或na)的表达式 单位元:唯一 逆元:任意元素均有且唯一特殊的群为循环群;群举例:Z(加法);Zn(加法)明确了群的定义后,我们接着了解群的各类特殊子群的定义和性质:子群H=群G的子集合+二元运算…

    2022年6月21日
    19
  • gbk的不可映射字符_编码gb18030的不可映射字符

    gbk的不可映射字符_编码gb18030的不可映射字符当我们需要输出中文时,在DOS等运行和调试代码时会出现study01.java:3:错误:编码GBK的不可映射字符System.out.println(“浠婂ぉ鐨勬棩鏈熸槸锛?”+day)锛?^或者中文编码错误原因:WindowsCMD和PowerShell的默认编码格式是GBK(汉字内码扩展规范即国标),而VScode、Notepad++甚至是记事本等编辑器的默认编码格式是UTF-8。解决方法

    2022年10月22日
    0
  • 透视投影矩阵推导[通俗易懂]

    透视投影矩阵推导[通俗易懂]透视投影矩阵(PerspectiveMatrix)近截面与远截面之间构成的四棱台称为视锥体,而透视投影矩阵的任务就是把位于视锥体内的物体的顶点x,y,zx,y,zx,y,z坐标映射到[−1,1][-1,1][−1,1]范围。这相当于把这个四棱台扭曲变形成一个立方体。这个立方体叫做规范观察体(CanonicalViewVolume,CVV)。矩阵的形式(1aspect⋅tan⁡(fovy2)00001tan⁡(fovy2)0000−zNear−zFarzNear−zFar2⋅zNea

    2022年10月4日
    0
  • 八核版9500odin3线刷通刷以及root教程

    八核版9500odin3线刷通刷以及root教程1.先准备好odin3最新版或者汉化版以及通刷包(教程最后提供下载朱雀www.zhuquewl.com)2.跟着我的步骤走,除非你RP不佳,反正我刷机成功了3.教程音量减键+HOME键+开机键出现如下画面:  4.出现如上画面按下音量加键   5.电脑上打开odin3选择你的固件,我放在桌面上(文件放哪随便了),连上手机,端口号能读出[0:COM11],读不出重新连接

    2022年7月21日
    12
  • C++中this指针的本质

    C++中this指针的本质一直以来对C++中的this不理解,只知道在构造函数中,如果构造函数的参数和类成员的名字一样的话,就可以用this指针来区分,如:this->a=a;一直以来都有这个疑问:this究竟是什么?我们明明没有定义这个this,但是我们可以直接用而编译器不会报错。今天来解决这个疑问。从刚才的代码中,我们用”this->”而不是”this.”就说明this是一个指针,而我们知道,在C、C++中,指针

    2022年5月16日
    41
  • MySQL常用SQL语句大全

    MySQL常用SQL语句大全MySQL数据库是一个十分轻便的数据库管理系统,相比大型的数据库管理系统如Oracle、MS-SQL,MySQL更拥有轻便、灵活、开发速度快的特色,更适用于中小型数据的存储与架构。MySQL之所以能够被数以万计的网站采用,也是由此而来。

    2022年6月13日
    25

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号