测试事务实现转账

简介: 测试事务实现转账
-- 使用set语句来改变自动提交模式
SET autocommit = 0;   /*关闭*/ 
SET autocommit = 1;   /*开启*/
-- 注意: 
---  1.MySQL中默认是自动提交 
---  2.使用事务时应先关闭自动提交
-- 开始一个事务,标记事务的起始点 START TRANSACTION   
-- 提交一个事务给数据库 COMMIT
-- 将事务回滚,数据回到本次事务的初始状态 ROLLBACK
-- 还原MySQL数据库的自动提交 SET autocommit =1;
-- 保存点 SAVEPOINT 保存点名称 -- 设置一个事务保存点 ROLLBACK TO SAVEPOINT 保存点名称 -- 回滚到保存点 RELEASE SAVEPOINT 保存点名称 -- 删除保存点


事务处理步骤

20200802121111494.png


测试题目

/* 课堂测试题目
A在线买一款价格为500元商品,网上银行转账. A的银行卡余额为2000,然后给商家B支付500. 商家B一开始的银行卡余额为10000
创建数据库shop和创建表account并插入2条数据 */
CREATE DATABASE `shop`CHARACTER SET utf8 COLLATE utf8_general_ci; USE `shop`; 
CREATE TABLE `account` (  
`id` INT(11) NOT NULL AUTO_INCREMENT,  
`name` VARCHAR(32) NOT NULL,
 `cash` DECIMAL(9,2) NOT NULL,  PRIMARY KEY (`id`) ) ENGINE=INNODB DEFAULT CHARSET=utf8
INSERT INTO account (`name`,`cash`) VALUES('A',2000.00),('B',10000.00)
-- 转账实现 
SET autocommit = 0; -- 关闭自动提交 
START TRANSACTION;  -- 开始一个事务,标记事务的起始点 
UPDATE account SET cash=cash-500 WHERE `name`='A'; UPDATE account SET cash=cash+500 WHERE `name`='B'; COMMIT; -- 提交事务 
# rollback; 
SET autocommit = 1; -- 恢复自动提交



相关文章
|
1月前
|
分布式计算 Hadoop Unix
Hadoop-28 ZooKeeper集群 ZNode简介概念和测试 数据结构与监听机制 持久性节点 持久顺序节点 事务ID Watcher机制
Hadoop-28 ZooKeeper集群 ZNode简介概念和测试 数据结构与监听机制 持久性节点 持久顺序节点 事务ID Watcher机制
41 1
|
6月前
|
存储 Java 中间件
事务一致性测试
事务一致性测试
52 0
24Redis - 事务测试案例
24Redis - 事务测试案例
54 0
|
Java 测试技术 数据库连接
MyBatis基本用法 && 什么是自动化测试 && Spring事务和事务传播机制 && 性能测试概念和术语 && Loadrunner安装
MyBatis基本用法 && 什么是自动化测试 && Spring事务和事务传播机制 && 性能测试概念和术语 && Loadrunner安装
84 0
|
缓存 测试技术 数据库
软件测试面试题:假设在测试过程中某些事务的响应时间过长,但分析应用服务、数据库以及网络都属于正常现象,问题可能出现的原因有哪些?
软件测试面试题:假设在测试过程中某些事务的响应时间过长,但分析应用服务、数据库以及网络都属于正常现象,问题可能出现的原因有哪些?
367 0
|
Java 数据库连接 数据库
高效掌握JDBC技术(三)| 三层架构理念 | 书写符合事务特性的工具类 | JUnit测试框架 | JDBC项目开发步骤(下)
高效掌握JDBC技术(三)| 三层架构理念 | 书写符合事务特性的工具类 | JUnit测试框架 | JDBC项目开发步骤
106 1
|
Java 数据库连接 数据库
高效掌握JDBC技术(三)| 三层架构理念 | 书写符合事务特性的工具类 | JUnit测试框架 | JDBC项目开发步骤(上)
高效掌握JDBC技术(三)| 三层架构理念 | 书写符合事务特性的工具类 | JUnit测试框架 | JDBC项目开发步骤
138 1
|
Java 数据库 容器
声明式事务测试 :Spring注解笔记系列(一)
事务拦截器:先获取事务相关的一些属性,再来获取PlateformTransactionManager,如果事先没有添加任何指定TransactionManager,最终会从容器中按照类型获取一个PlateformTransactionManager
162 0
|
关系型数据库 MySQL 测试技术
软件测试mysql面试题:什么是数据库事务?
软件测试mysql面试题:什么是数据库事务?
103 0
|
关系型数据库 MySQL 测试技术
软件测试mysql面试题:Myql中的事务回滚机制概述
软件测试mysql面试题:Myql中的事务回滚机制概述
126 0