mysql 事务实例_mysql实现事务的提交和回滚实例

mysql创建存储过程的官方语法为:

复制代码 代码如下:START TRANSACTION | BEGIN [WORK]

COMMIT [WORK] [AND [NO] CHAIN] [[NO] RELEASE]

ROLLBACK [WORK] [AND [NO] CHAIN] [[NO] RELEASE]

SET AUTOCOMMIT = {0 | 1}

我这里要说明的mysql事务处理多个SQL语句的回滚情况。比如说在一个存储过程中启动一个事务,这个事务同时往三个表中插入数据,每插完一张表需要判断其是否操作成功,如果不成功则需要回滚,最后一张表判断其插入成功之后commit。这里需要注意的是不能直接使用事务的collback,这样是不能实现回滚的或者说可能出现意外的错误。

那么我们需要的是一个条件判断,比如loop,因为MySql默认是会自动提交的,所以我们不用担心rollback之后条件退出而没有commit。

具体mysql语句如下:

复制代码 代码如下:begin

loop_lable: loop

start transaction;

insert into table1(f_user_id) values(user_id);

if row_count() < 1 then

set @ret = -1;

rollback;

leave loop_label;

end if;

insert into table2(f_user_id) values(user_id);

if row_count() < 1 then

set @ret = -1;

rollback;

leave loop_label;

end if;

insert into table3(f_user_id) values(user_id);

if row_count() < 1 then

set @ret = -1;

rollback;

leave loop_label;

else

set @ret = 0;

commit;

leave loop_label;

end if;

end loop;

select @ret;

end

您可能感兴趣的文章:深入解析MySQL的事务隔离及其对性能产生的影响MySQL中Innodb的事务隔离级别和锁的关系的讲解教程MySQL数据库事务隔离级别介绍(Transaction Isolation Level)MySQL存储过程例子(包含事务,输出参数,嵌套调用)Mysql中的事务是什么如何使用MySql的事务使用与示例详解php+mysql事务rollback&commit示例PHP操作MySQL事务实例mysql 锁表锁行语句分享(MySQL事务处理)mysql存储过程事务管理简析MySQL 四种事务隔离级别详解及对比

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/438636.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

34观察者模式(Observer Pattern)

动机(Motivate):在软件构建 过程中&#xff0c;我们需要为某些对象建立一种“通知依赖关系” --------一个对象&#xff08;目标对象&#xff09;的状态发生改变&#xff0c;所有的依赖对象&#xff08;观察者对象&#xff09;都将得到通知。如果这样的依赖关系过于紧密&#x…

mysql自定义存储过程_MySQL自定义函数、触发器、存储过程

存储过程概念存储过程&#xff0c;是一个数据库对象&#xff0c;类似一个函数。在存储过程中可以使用SQL中的绝大部分内容&#xff0c;并且可以加入编程语言的特性(循环判断分支)。编写好存储过程之后&#xff0c;可以在客户端调用存储过程&#xff0c;存储过程会自动的执行里面…

36中介者模式(Mediator Pattern)

依赖关系的转化: 动机(Motivate): 在软件构建过程中&#xff0c;经常会出现多个对象互相关联交互的情况&#xff0c;对象之间常常会维持一种复杂的引用关系&#xff0c;如果遇到一些需求的更改&#xff0c;这种直接的引用关系将面临不断的变化。 在这种情况…

相似理论与模型试验_正交实验下的固液耦合相似材料研究

原标题&#xff1a;基于正交试验的固液耦合相似材料研究摘 要:为了研究矿井突水演化规律&#xff0c;通过正交试验研制出一种能同时满足固体力学与水理性的固液 耦合相似材料&#xff0c;该相似材料以河沙为骨料、水泥和大白粉为胶结剂、液体石蜡和淀粉为调节剂。采用 极差分析…

35解释器模式(Interpreter Pattern)

动机(Motivate): 在软件构建过程中&#xff0c;如果某一特定领域的问题比较复杂&#xff0c;类似的模式不断重复出现&#xff0c;如果使用普通的编程方式来实现将面临非常频繁的变化。 在这种情况下&#xff0c;将特定领域的问题表达为某种文法规则下的句子&#xff0c;…

37职责链模式(Chain of Responsibility Pattern)

动机(Motivate)&#xff1a; 在软件构建过程中&#xff0c;一个请求可能被多个对象处理&#xff0c;但是每个请求在运行时只能有一个接受者&#xff0c;如果显示指定&#xff0c;将必不可少地带来请求发送者与接受者的紧耦合。 如何使请求的发送者不需要指定具体的接受…

python3中format函数列表_Python3之字符串格式化format函数详解(上)

173.jpg概述在Python3中&#xff0c;字符串格式化操作通过format()方法或者fstring实现。而相比于老版的字符串格式化方式&#xff0c;format()方法拥有更多的功能&#xff0c;操作起来更加方便&#xff0c;可读性也更强。该函数将字符串当成一个模板&#xff0c;通过传入的参数…

38备忘录模式(Memento Pattern)

对象状态的回溯&#xff1a; 对象状态的变化无端&#xff0c;如何回溯/恢复对象在某个点的状态&#xff1f; 动机&#xff1a; 在软件构建过程中&#xff0c;某些对象的状态在转换过程中&#xff0c;可能由于某种需要&#xff0c;要求程序能够…

python剪切文件如何恢复_用python实现的可以拷贝或剪切一个文件列表中的所有文件...

# coding:utf-8import osimport sysdef cut_and_paste_file(source, destination):source: file path 中文destination: directory pathdef format_path(path):if not os.path.isabs(path):path os.path.join(os.getcwd(), path)return pathdef mk_dir(path):if not os.path.e…

39策略模式(Strategy Pattern)

算法与对象的耦合&#xff1a; 对象可能经常需要使用多种不同的算法&#xff0c;但是如果变化频繁&#xff0c;会将类型变得脆弱... 动机&#xff1a; 在软件构建过程中&#xff0c;某些对象使用的算法可能多种多样&#xff0c;经常改变&#xff0c;如果将…

python选择表单_如何使用Python在表单中选择选项?

下面是一些基本用法示例&#xff1a;>>> import mechanize>>> br mechanize.Browser()>>> br.open(http://www.w3schools.com/html/html_forms.asp)表单有一个name属性&#xff1b;但有时它是空的&#xff1a;>>> [f.name for f in br.fo…

40访问者模式(Visitor Pattern)

类层次结构的变化&#xff1a; 类层次结构中可能经常由于引入新的操作&#xff0c;从而将类型变得脆弱... 动机&#xff1a; 在软件构建过程中&#xff0c;由于需求的改变&#xff0c;某些类层次结构中常常需要增加新的行为(方法),如果直接…

ssh中c3p0连接mysql_ssh 中使用c3p0 的连接池配置 | 学步园

applicationContext.xml 文件&#xff1a;xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xmlns:jee"http://www.springframework.org/schema/jee"xsi:schemaLocation"http://www.springframework.org/schema/beans http://www.springframewor…

41状态模式(State Pattern)

对象状态影响对象行为&#xff1a; 对象拥有不同的状态&#xff0c;往往会行使不同的行为... 动机&#xff1a; 在软件构建过程中&#xff0c;某些对象的状态如果改变以及其行为也会随之而发生变化&#xff0c;比如文档处于只读状态&#xff0c;其支…

python中空格属于字符吗_举例说明python中空格是属于字符

python中空格属于字符吗&#xff1f;答案是肯定的&#xff0c;空格在Python中也是属于字符的。案例&#xff1a;输入一行字符&#xff0c;分别统计出其中英文字母、空格、数字和其它字符的个数。#!/usr/bin/python# -*- coding: UTF-8 -*-import strings raw_input(input a st…

python如何引发和处理异常_在python3.6中,如何捕捉异常并引发异常以便稍后处理?...

假设我有两个例外&#xff1a;class FooError (Exception):def __init__(self, *args, **kwargs):default_message A foo error has occurred!if not (args or kwargs): args (default_message,)super().__init__(*args, **kwargs)class BarError (Exception):def __init__(s…

2字节十六进制浮点数 qt_Qt之8个字节转化为double小数

首先要理解double的存储方式&#xff0c;具体可查找相关的博客本文实现的是将8个字节(存储为16进制的字符串)转化为对应的double类型double MainWindow::qByteArraytodouble(QString qstr){QByteArray byte;StringToHex(qstr,byte);double result;memcpy(&result, byte.dat…

【转】如何将域中的AD数据导入SharePoint

最近刚装好sharepoint2010&#xff0c;想要研究一下&#xff0c;第一件想做的事就是想把AD中的用户信息导入到SharePoint中。 那现在就来看看我是怎么操作的&#xff1a; 1.打开管理中心 sharepoint是通过“用户配置文件同步服务”来实现同步&#xff0c;所以第一步要开启这个…

Apsara Clouder专项技能认证:实现调用API接口

一.API 简介 1.API 的概念 API(Application Programming Interface应用程序编程接口)是一些预定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码或理解内部工作机制的细节 2.API 的特点 API 是一个明确定义的接口,可以为其…

druid加密mysql_Druid 数据库用户密码加密 代码实现

标签&#xff1a;druid-1.0.16.jar 阿里巴巴的开源数据连接池 jar包明文密码私钥(privateKey)加密加密密码加密密码公钥(publicKey)解密明文密码程序代码如下&#xff1a;package com.t1;import com.alibaba.druid.filter.config.ConfigTools;public class DruidTest {public s…