需求说明:

案例背景:银行的转账过程中,发生意外是在所难免。为了避免意外而造成不必要的损失,使用事务处理的方式进行处理:

A账户现有余额1000元,向余额为200的B账户进行转账500元。可能由于某原因:

A账户在扣除转账金额时发生错误,使用事务回滚来返回到初始状态

A账户成功扣除转账金额后,B账户添加转账金额发生错误,使用事务回滚到初始状态

提示:先建数据表account,字段包括姓名(username)、余额(money),再分别利用事务处理以上两种情况。

  1. #创建账户表
  2. CREATE TABLE IF NOT EXISTS account(
  3. id INT(11)NOT NULL AUTO_INCREMENT PRIMARY KEY,
  4. username VARCHAR(32)NOT NULL,
  5. money DECIMAL(9,2)
  6. )ENGINE=INNODB;
  7. #插入用户数据
  8. INSERT INTO account(username,money)VALUES('A',1000.00);
  9. INSERT INTO account(username,money)VALUES('B',200.00);
  10. /*事务处理*/
  11. #  A账户汇款失败
  12. SELECT * FROM account;
  13. #第一步 关闭事务自动提交模式
  14. SET autocommit=0;
  15. #第二步 开始事务
  16. START TRANSACTION;
  17. #第三步 发现汇款失败,将事务回滚ROLLBACK ||  汇款成功将事件commit
  18. #假设语法错误
  19. UPDATE account SET money=money-500 WHERE username='A';
  20. SELECT * FROM account;
  21. UPDATE account SET money=money+200 WHERE username='B';
  22. ROLLBACK;
  23. #第四步 还原Mysql数据库的的自动提交
  24. SET autocommit=1;
  25. SELECT * FROM account;
  26. /*B接收汇款失败*/
  27. SELECT *FROM account ;
  28. SET autocommit =0;
  29. START TRANSACTION;
  30. UPDATE account SET money=money-500 WHERE username='A';
  31. SELECT * FROM account ;
  32. #假设语法错误
  33. UPDATE account SET money=money+200 WHERE username ='B';
  34. ROLLBACK;
  35. SET autocommit =1;
  36. SELECT * FROM account;
  37. #清除数据
  38. <pre name="code" class="sql">TRUNCATE account;

MySQL事务处理实现方法步骤的更多相关文章

  1. 关于mysql登录异常处理方法 - mysql ERROR 1045 (28000)

    今天在开发过程中遇到了一个很令人头痛的问题?? 使用 百度经验的步骤 [http://jingyan.baidu.com/article/495ba841ef412d38b30edeb2.html]修 ...

  2. mysql事务处理用法与实例详解

    来源:转载  MySQL的事务支持不是绑定在MySQL服务器本身,而是与存储引擎相关1.MyISAM:不支持事务,用于只读程序提高性能 2.InnoDB:支持ACID事务.行级锁.并发 3.Berke ...

  3. mysql事务处理的意义

    MySQL的事务支持不是绑定在MySQL服务器本身,而是与存储引擎相关 1.MyISAM:不支持事务,用于只读程序提高性能 .InnoDB:支持ACID事务.行级锁.并发 .Berkeley DB:支 ...

  4. Linux 每天自动备份mysql数据库的方法

    Linux 每天自动备份mysql数据库的方法 作者: 字体:[增加 减小] 类型:转载   linux下为了安全有时候需要自动备份mysql数据库,下面是具体的实现步骤.   /usr/bin为my ...

  5. Windows Server 2003开机自动启动MySQL服务设置方法

    Windows Server 2003开机自动启动MySQL服务设置方法 发布时间:2014-12-19 更新时间:2014-12-24 来源:网络 作者:eaglezhong 关键词: 2003 e ...

  6. 最简便的MySql数据库备份方法

    http://www.kankanews.com/ICkengine/archives/194.shtml 使用MYSQL进行数据库备份,又很正规的数据库备份方法,同其他的数据库服务器有相同的概念,但 ...

  7. MySQL数据库迁移详细步骤(转)

    ========================================================================================== 一.背景简介 == ...

  8. vs连接mysql出错解决方法

    vs连接mysql出错解决方法 先按以下的步骤配置一下: **- (1)打开VC6.0 工具栏Tools菜单下的Options选项.在Directories的标签页中右边的"Show dir ...

  9. 【MySQL笔记】mysql来源安装/配置步骤和支持中国gbk/gb2312编码配置

    不久的学习笔记.分享.我想有很大的帮助谁刚开始学习其他人的 备注:该票据于mysql-5.1.73版本号例如 1. mysql源代码编译/安装步骤 1) 官网下载mysql源代码并解压 2) cd至源 ...

随机推荐

  1. BeginnerAdmin后台框架的使用!

    基于layui的后台框架,我比较喜欢使用BeginnerAdmin模板.但是在构建的时候可能会遇到一些问题. 问题一:侧栏出不来: 报错是这样的: 这个错误:说明的是 navbar.js没有引进来. ...

  2. 微信小程序 --- 设置app.js/page.js参数的方法

    设置 app.js 文件: //app.js App({ globalData: { is_login:false, userInfo:{} } }) 设置gloabalData的方法: // 定义a ...

  3. angularJS中的ng-repeat指令!

    ng-repeat 指令: ng-repeat 指令用来遍历一个数组重复创建当前元素: <ul ng-app="myApp" ng-controller="myAp ...

  4. 170529、springMVC 的工作原理和机制

    工作原理上面的是springMVC的工作原理图: 1.客户端发出一个http请求给web服务器,web服务器对http请求进行解析,如果匹配DispatcherServlet的请求映射路径(在web. ...

  5. 转载:SQL Server编程基本语法

    一.定义变量 --简单赋值 declare @a int print @a --使用select语句赋值 ) select @user1='张三' print @user1 ) print @user ...

  6. codeforces#505--B Weakened Common Divisor

    B. Weakened Common Divisor time limit per test 1.5 seconds memory limit per test 256 megabytes input ...

  7. win10配置的静态/动态IP和 DNS的方法

    1.配置静态IP和DNS netsh interface ip set address name="以太网" source=static addr=192.168.9.145 ma ...

  8. 关于java web的笔记2018-01-12

    需求:1.写一个商品类,有商品编号.商品名称.商品分类.商品单价属性.2.写一个商品条目信息类,有商品和数量两个属性,有商品总价格方法.3.写一个购物车类,有添加商品方法.查看订单信息,删除商品,修改 ...

  9. AJAX.basic

    之前在项目中使用ajax都是通过jQuery的Ajax API来进行的,今天试了一下通过基本的JavaScript来进行ajax请求,将代码记录下来: jsp 页面 <%@ page pageE ...

  10. 关于mysql5.7的一些变化

    最近接了个项目,使用的数据库是5.7的,开始没太在意,但是在接手的过程中发送了些小插曲,特意记录下来. 首先,我想自己安装个noinstall版本的,结果发信下载下来的和之前版本的不一样,没有data ...