mysql 可以事务嵌套事务么

mysql 可以事务嵌套事务么,第1张

普通事务

以 begin / start transaction 开始,commit / rollback 结束的事务。或者是带有保存点 savepoint 的事务。

2. 链式事务

一个事务在提交的时候自动将上下文传给下一个事务,也就是说一个事务的提交和下一个事务的开始是原子性的,下一个事务可以看到上一个事务的处理结果。MySQL 的链式事务靠参数 completion_type 控制,并且回滚和提交的语句后面加上 work 关键词。

3. 嵌套事务

有多个 begin / commit / rollback 这样的事务块的事务,并且有父子关系。子事务的提交完成后不会真的提交,而是等到父事务提交才真正的提交。

4. 自治事务

内部事务的提交不随外部事务的影响,一般用作记录内部事务的异常情况。MySQL 不支持自治事务,但是某些场景可以用 MySQL 的插件式引擎来变相实现。

前几日写存储过程,使用嵌套if语句的时候,碰到一个奇怪的问题,多方找原因无果。后发现是一个很sb的问题。。。

if condition1 then

    if condition1.1 then

        do something1.1

    else if condition1.2 then

        do something1.2

    else   -- 报错的地方

        do something1.3

    endif

else

    do something2.2

endif

如上,else那里一直在报错。

使用了排除法,把else那块去掉,仍报错。

整个中间的if那段去掉,编译成功。

else if和else去掉,编译成功。

else if去掉,编译成功。

好吧,else if的问题。elseif应该是没有空格的!!!

排除法是个好方法,细心是个好习惯

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7210428.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-02
下一篇 2023-04-02

发表评论

登录后才能评论

评论列表(0条)

保存