MySQL事务处理实现方法步骤
需求说明:
案例背景:银行的转账过程中,发生意外是在所难免。为了避免意外而造成不必要的损失,使用事务处理的方式进行处理:
A账户现有余额1000元,向余额为200的B账户进行转账500元。可能由于某原因:
A账户在扣除转账金额时发生错误,使用事务回滚来返回到初始状态
A账户成功扣除转账金额后,B账户添加转账金额发生错误,使用事务回滚到初始状态
提示:先建数据表account,字段包括姓名(username)、余额(money),再分别利用事务处理以上两种情况。
- #创建账户表
- CREATE TABLE IF NOT EXISTS account(
- id INT(11)NOT NULL AUTO_INCREMENT PRIMARY KEY,
- username VARCHAR(32)NOT NULL,
- money DECIMAL(9,2)
- )ENGINE=INNODB;
- #插入用户数据
- INSERT INTO account(username,money)VALUES('A',1000.00);
- INSERT INTO account(username,money)VALUES('B',200.00);
- /*事务处理*/
- # A账户汇款失败
- SELECT * FROM account;
- #第一步 关闭事务自动提交模式
- SET autocommit=0;
- #第二步 开始事务
- START TRANSACTION;
- #第三步 发现汇款失败,将事务回滚ROLLBACK || 汇款成功将事件commit
- #假设语法错误
- UPDATE account SET money=money-500 WHERE username='A';
- SELECT * FROM account;
- UPDATE account SET money=money+200 WHERE username='B';
- ROLLBACK;
- #第四步 还原Mysql数据库的的自动提交
- SET autocommit=1;
- SELECT * FROM account;
- /*B接收汇款失败*/
- SELECT *FROM account ;
- SET autocommit =0;
- START TRANSACTION;
- UPDATE account SET money=money-500 WHERE username='A';
- SELECT * FROM account ;
- #假设语法错误
- UPDATE account SET money=money+200 WHERE username ='B';
- ROLLBACK;
- SET autocommit =1;
- SELECT * FROM account;
- #清除数据
- <pre name="code" class="sql">TRUNCATE account;
MySQL事务处理实现方法步骤的更多相关文章
- 关于mysql登录异常处理方法 - mysql ERROR 1045 (28000)
今天在开发过程中遇到了一个很令人头痛的问题?? 使用 百度经验的步骤 [http://jingyan.baidu.com/article/495ba841ef412d38b30edeb2.html]修 ...
- mysql事务处理用法与实例详解
来源:转载 MySQL的事务支持不是绑定在MySQL服务器本身,而是与存储引擎相关1.MyISAM:不支持事务,用于只读程序提高性能 2.InnoDB:支持ACID事务.行级锁.并发 3.Berke ...
- mysql事务处理的意义
MySQL的事务支持不是绑定在MySQL服务器本身,而是与存储引擎相关 1.MyISAM:不支持事务,用于只读程序提高性能 .InnoDB:支持ACID事务.行级锁.并发 .Berkeley DB:支 ...
- Linux 每天自动备份mysql数据库的方法
Linux 每天自动备份mysql数据库的方法 作者: 字体:[增加 减小] 类型:转载 linux下为了安全有时候需要自动备份mysql数据库,下面是具体的实现步骤. /usr/bin为my ...
- Windows Server 2003开机自动启动MySQL服务设置方法
Windows Server 2003开机自动启动MySQL服务设置方法 发布时间:2014-12-19 更新时间:2014-12-24 来源:网络 作者:eaglezhong 关键词: 2003 e ...
- 最简便的MySql数据库备份方法
http://www.kankanews.com/ICkengine/archives/194.shtml 使用MYSQL进行数据库备份,又很正规的数据库备份方法,同其他的数据库服务器有相同的概念,但 ...
- MySQL数据库迁移详细步骤(转)
========================================================================================== 一.背景简介 == ...
- vs连接mysql出错解决方法
vs连接mysql出错解决方法 先按以下的步骤配置一下: **- (1)打开VC6.0 工具栏Tools菜单下的Options选项.在Directories的标签页中右边的"Show dir ...
- 【MySQL笔记】mysql来源安装/配置步骤和支持中国gbk/gb2312编码配置
不久的学习笔记.分享.我想有很大的帮助谁刚开始学习其他人的 备注:该票据于mysql-5.1.73版本号例如 1. mysql源代码编译/安装步骤 1) 官网下载mysql源代码并解压 2) cd至源 ...
随机推荐
- BeginnerAdmin后台框架的使用!
基于layui的后台框架,我比较喜欢使用BeginnerAdmin模板.但是在构建的时候可能会遇到一些问题. 问题一:侧栏出不来: 报错是这样的: 这个错误:说明的是 navbar.js没有引进来. ...
- 微信小程序 --- 设置app.js/page.js参数的方法
设置 app.js 文件: //app.js App({ globalData: { is_login:false, userInfo:{} } }) 设置gloabalData的方法: // 定义a ...
- angularJS中的ng-repeat指令!
ng-repeat 指令: ng-repeat 指令用来遍历一个数组重复创建当前元素: <ul ng-app="myApp" ng-controller="myAp ...
- 170529、springMVC 的工作原理和机制
工作原理上面的是springMVC的工作原理图: 1.客户端发出一个http请求给web服务器,web服务器对http请求进行解析,如果匹配DispatcherServlet的请求映射路径(在web. ...
- 转载:SQL Server编程基本语法
一.定义变量 --简单赋值 declare @a int print @a --使用select语句赋值 ) select @user1='张三' print @user1 ) print @user ...
- codeforces#505--B Weakened Common Divisor
B. Weakened Common Divisor time limit per test 1.5 seconds memory limit per test 256 megabytes input ...
- win10配置的静态/动态IP和 DNS的方法
1.配置静态IP和DNS netsh interface ip set address name="以太网" source=static addr=192.168.9.145 ma ...
- 关于java web的笔记2018-01-12
需求:1.写一个商品类,有商品编号.商品名称.商品分类.商品单价属性.2.写一个商品条目信息类,有商品和数量两个属性,有商品总价格方法.3.写一个购物车类,有添加商品方法.查看订单信息,删除商品,修改 ...
- AJAX.basic
之前在项目中使用ajax都是通过jQuery的Ajax API来进行的,今天试了一下通过基本的JavaScript来进行ajax请求,将代码记录下来: jsp 页面 <%@ page pageE ...
- 关于mysql5.7的一些变化
最近接了个项目,使用的数据库是5.7的,开始没太在意,但是在接手的过程中发送了些小插曲,特意记录下来. 首先,我想自己安装个noinstall版本的,结果发信下载下来的和之前版本的不一样,没有data ...