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至源 ...
随机推荐
- mysql报错sql injection violation, syntax error: syntax error, expect RPAREN, actual IDENTIFIER
mysql报错sql injection violation, syntax error: syntax error, expect RPAREN, actual IDENTIFIER 处理,在控制台 ...
- 学习认识Spring原理
学习认识Spring原理 Spring 是一种业务层框架.搭建Spring框架需要Spring开发包和commons-logging包.Spring的核心思想是控制反转也称依赖注入(创建者--(实例) ...
- [Jenkins] 批量删除构建历史
Manage Jenkins -> Script Console def jobName = "Some_Job_Name" def maxNumber = 64 Jenki ...
- SELECT INTO 和 INSERT INTO SELECT
做数据库开发的过程中难免会遇到有表数据备份的,而SELECT INTO……和INSERT INTO SELECT…… 这两种语句就是用来进行表数据复制,下面简单的介绍下: 1.INSERT INTO ...
- input输入框制定输入数据类型匹配
<input type="text" id="price_169" value="97" style="max-width: ...
- 虚拟机中CentoOs配置ip且连网
1.修改"VMware Network Adapter VMnet8",配置IP 2.打开虚拟机,"编辑" => "虚拟网络编辑器", ...
- javascript关闭网页的几种方法
js关闭当前页面(窗口)的几种方式总结,需要的朋友可以参考一下: 1. 不带任何提示关闭窗口的js代码 <a href="javascript:window.opener=null;w ...
- nginx:正向代理和反向代理
一.正向代理 原理:正向代理是一个位于客户端和目标服务器之间的代理服务器(中间服务器).为了从目标服务器取得内容,客户端向代理服务器发送一个请求,并且指定目标服务器,之后代理向目标服务器转交并且将获得 ...
- WPF自定义代码启动应用程序启动方式
删除app.xaml 添加App.cs类 第一种方式: class App { [STAThread] static void Main() { ...
- Day27-28 基础加强
day28基础加强 今日内容 泛型 注解 Servlet3.0 动态代理 类加载器 泛型 回顾泛型类 泛型类:具有一个或多个泛型变量的类被称之为泛型类. public class A<T&g ...