zoukankan      html  css  js  c++  java
  • 事务测试转账

    事务思路图:

     1 -- mysql 是默认开启事务自动提交的
     2 SET autocommit=0 -- 关闭
     3 SET autocommit=1 -- 开启(默认的)
     4 
     5 -- 手动处理事务
     6 START TRANSACTION -- 标记一个事务的开始,从这个之后的sql都在同一个事务内
     7 
     8 INSERT xxx
     9 INSERT xxx
    10 
    11 -- 提交:持久化(成功)
    12 COMMIT 
    13 -- 回滚:回到原来的样子(失败)
    14 ROLLBACK
    15 
    16 -- 事务结束
    17 SET autocommit=1 -- 开启自动提交
    18 
    19 -- 了解
    20 SAVEPOINT 保存点名 -- 设置一个事务的保存点   比如小时候玩游戏,死了之后又从死的那一关开始玩
    21 ROLLBACK TO SAVEPOINT 保存点名 -- 回滚到保存点
    22 RELEASE SAVEPOINT 保存点名 -- 撤销保存点

    模拟转账:

     1 CREATE DATABASE shop CHARACTER SET utf8 COLLATE utf8_general_ci
     2 USE shop
     3 CREATE TABLE man (
     4  `id` INT(3) NOT NULL AUTO_INCREMENT,
     5  `name` VARCHAR(20) NOT NULL,
     6  `money` DECIMAL(9,2) NOT NULL,
     7  PRIMARY KEY (`id`)
     8  )
     9  
    10  INSERT INTO man (`name`,`money`)
    11  VALUES ('a',2000.000),
    12  ('b',10000.00)
    13 
    14 -- 模拟转账:事务
    15 SET autocommit = 0  -- 关闭自动提交
    16 START TRANSACTION -- 开启一个事务
    17 
    18 UPDATE man SET money=money-500 WHERE `name`='a'   -- a 减500
    19 UPDATE man SET money=money+500 WHERE `name`='b'   -- b 加500
    20  
    21 COMMIT  -- 事务提交  一致性,事务一但提交不可逆
    22 ROLLBACK -- 事务回滚
    23 
    24 SET autocommit = 1  -- 打开自动提交
  • 相关阅读:
    直播平台的相关技术(转载)
    各种排序算法分析总结(待整理))
    算法:60.第k个排列
    三种随机化算法:舍伍德算法 拉斯维加斯算法 蒙特卡洛算法
    随机化算法之随机数
    caffe调试
    Euclideanloss_layer层解析
    布线问题(分支限界法)
    最大堆和最小堆
    机器学习知识框架
  • 原文地址:https://www.cnblogs.com/YXBLOGXYY/p/14763912.html
Copyright © 2011-2022 走看看