我现在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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 概率论中 PDF,PMF,CDF的含义[通俗易懂]

    概率论中 PDF,PMF,CDF的含义[通俗易懂]概率论中PDF,PMF,CDF的含义在概率论中,我们经常能碰到这样几个概念PDF,PMF,CDF,这里就简单介绍一下PDF:概率密度函数(probabilitydensityfunction),在数学中,连续型随机变量的概率密度函数(在不至于混淆时可以简称为密度函数)是一个描述这个随机变量的输出值,在某个确定的取值点附近的可能性的函数。概率密度函数都是针对连续性随机变量的,对于连续性随机变量,都是针对某一段区间的取值,在一个点的取值都是几乎为0的,所以我们研究连续性随机变量时,都是取变量在一段

    2022年5月24日
    71
  • Android 源码解析 之 setContentView「建议收藏」

    Android 源码解析 之 setContentView「建议收藏」转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/41894125,本文出自:【张鸿洋的博客】大家在平时的开发中,对于setContentView肯定不陌生,那么对其内部的实现会不会比较好奇呢~~~有幸终于能看到一些PhoneWindow神马的源码,今天就带大家来跑一回源码~~1、Activity setContentView首先

    2022年6月26日
    23
  • ora 01017问题解决办法

    ora 01017问题解决办法SQL>startup ORACLEinstancestarted. TotalSystemGlobalArea 914358272bytes FixedSize                 2088184bytes VariableSize            528483080bytes DatabaseBuffers         3774873…

    2022年6月1日
    37
  • 关于属性描述符PropertyDescriptor[通俗易懂]

    关于属性描述符PropertyDescriptor[通俗易懂]本文首发于本博客猫叔的博客,转载请申明出处前言感谢GY丶L粉丝的提问:属性描述器PropertyDescriptor是干嘛用的?本来我也没有仔细了解过描述符这一块的知识,不过粉丝问了,我就抽周末的时间看看,顺便学习一下,粉丝问的刚好是PropertyDescriptor这个属性描述符,我看了下源码。/***AProper…

    2022年10月1日
    0
  • padStart()与padEnd()「建议收藏」

    padStart()与padEnd()「建议收藏」padStart()padStart()方法用另一个字符串填充当前字符串(如果需要的话,会重复多次),以便产生的字符串达到给定的长度。从当前字符串的左侧开始填充。语法str.padStart(targetLength[,padString])参数:targetLength:当前字符串需要填充到的目标长度。如果这个数值小于当前字符串的长度,则返回当前字符串本身。padString:可选填充字符串。如果字符串太长,使填充后的字符串长度超过了目标长度,则只保留最左侧的部分,其他部分会被截

    2022年9月4日
    2
  • iphone越狱pp助手源_pp助手越狱版源地址

    iphone越狱pp助手源_pp助手越狱版源地址在为方便大家查看核桃同学分享的每日文章,建议小伙伴们【置顶我们】的公众号哦!进入【米乐科技】公众号,点击右上角打开设置界面,再次右上角选择【置顶/星标】,这样就可以啦!苹果越狱教程篇其实在编辑这篇文章的时候,核桃同学还在纠结是分享实用软件呢,还是先分享玩机技巧。恰好有小伙伴留言说想了解越狱只是,于是乎本文就诞生了。在往期的发布中,苹果机的资源分享的较少。主要是因为苹果手机在官家IOS系统…

    2025年6月29日
    1

发表回复

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

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