需求说明:

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

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. Unity3D笔记五 快捷键

    一.近距离查看游戏对象 在Hierarchy视图中选择游戏对象,然后在Scene视图中按快捷键“F”来近距离查看该游戏对象. 二.游戏对象不在主摄像头中? Hierarchy中双击选择需要显示的游戏对 ...

  2. eclipse导入maven-jeecg项目

    参考内容:http://blog.csdn.net/zhangdaiscott/article/details/50915206   [技术文档]jeecg3.7.1-maven搭建环境入门 由于ma ...

  3. mysql字符串根据指定字符分割

    1.分割函数:SUBSTRING_INDEX('浙江温州-中国电信','-','1') 2.用例(筛选'-'前至少4个汉字的数据) a.数据分布 b.筛选sql select t.mobile_num ...

  4. MVC之LayOut布局页

    LayOut布局页,就是相当于WebForm中母版页,实现了一个代码的共用和公共布局的作用. 布局页的使用 (1)添加新项,选择MVC布局页 <!DOCTYPE html> <htm ...

  5. SQL---->mySQl数据库1------表的增删改查

    一.创建表(增) 二.删除表(删) drop table 表名; 三.修改表(改) 3.1修改表——>增加一列 3.2修改表——>修改列的值 3.3修改表——>删除列 3.4修改表— ...

  6. Nginx高级玩法

    1. Nginx获取自定义消息头 .nginx是支持读取非nginx标准的用户自定义header的,但是需要在http或者server下开启header的下划线支持: underscores_in_h ...

  7. JavaScript如何把字符串中每个单词首字母转化为大写

    先上代码,再做解释. 思路分析: 1. 首先先把字符串中的单词转化为小写(toLowerCase),再对其进行截取(split),截取依据为按照空格截取: 2. 此时经过步骤一之后得到的东西是一个数组 ...

  8. html中使用JS实现图片轮播效果

    1.首先是效果图,要在网页中实现下图的轮播效果,有四张图片,每张图片有自己的标题,然后还有右下角的小方框,鼠标悬浮在小方框上,会切换到对应的图片中去. 2.先是HTML中的内容,最外层是轮播图整个的容 ...

  9. 【Python】获取翻页之后的各页面中的属性值。

    如何获取翻页之后的页面中的html标签中的属性值? # coding=utf-8 from selenium import webdriver if __name__=="__main__& ...

  10. Shell特殊变量介绍与实践 $0

    2.$0特殊变量的作用及变量实践$0的作用为取出执行脚本的名称(包括路径) ,下面是该功能的实践.范例4-4:获取脚本的名称及路径. [root@salt-client- sh1]# cat n1.s ...