事物分为 自动(默认的)和手动(需开启事务)两种

-- 事务 start transaction;
-- commite; 提交事务
-- rollback; 回滚事务
create table if not exists account(
id int primary key auto_increment,
name varchar(14) not null,
RMB int
); insert into account(name,RMB) values('Which',1000),('Tj',998);

rollback; 进行一步操作后,可以撤回这个操作

-- 开始事务    手动事物

start transaction;

-- 事物操作
update account set RMB =RMB-992 where name = 'Which';
-- \q 退出mysql(中断事务)
-- mysql -u name -p; 回到mysql   
-- 继续事务操作
-- 回滚事务
rollback;
+----+-------+------+   -- insert
| id | name | RMB |
+----+-------+------+
| 1 | Which | 8 |
| 2 | Tj | 998 |
+----+-------+------+
-- update |
--+-------+------+
| id | name | RMB |
+----+-------+------+
| 1 | Which | 8 |
| 2 | Tj | 998 |
+----+-------+------+
-- rollback |
+----+-------+------+
| id | name | RMB |
+----+-------+------+
| 1 | Which | 8 |
| 2 | Tj | 998 |
+----+-------+------+

commite:   自动提交

-- 事物操作
update account set RMB =RMB-992 where name = 'Which';
-- \q 退出mysql(事务)
-- mysql -u name -p; 回到mysql
-- 实际上在这儿退出后,再回到account表,值并没有-992,但是再进行下一步操作后,992就转给Tj了。
 -- 继续事务操作 update account set RMB =RMB+992 where name = 'Tj';
-- insert   Which 1000,Tj 998
+----+-------+------+
| id | name | RMB |
+----+-------+------+
| 1 | Which | 1000 |
| 2 | Tj | 998 |
+----+-------+------+
-- update Which-992
+----+-------+------+
| id | name | RMB |
+----+-------+------+
| 1 | Which | 8 |
| 2 | Tj | 998 |
+----+-------+------+
-- update Tj+992
+----+-------+------+
| id | name | RMB |
+----+-------+------+
| 1 | Which | 8 |
| 2 | Tj | 1990 |
+----+-------+------+

原子性操作:Innodb引擎支持事务

要么全部成功,要么全部失败 

Mysql-事务,原子性操作的更多相关文章

  1. Golang之Mysql事务

    Mysql事务 )原子性 )一致性 )隔离性 )持久性 示例代码 package main import ( "fmt" _ "github.com/go-sql-dri ...

  2. Mysql学习---基础操作学习

    1.1. 基本操作 数据库引擎 Inodb:支持事务[原子性操作,完成一些列操作后才算完成操作,否则rollback] MyISAM: 支持全文索引,强调了快速读取操作,主要用于高负载的select ...

  3. 第二百八十六节,MySQL数据库-MySQL事务操作(回滚)

    MySQL数据库-MySQL事务操作(回滚) 事务用于将某些操作的多个SQL作为原子性操作,一旦有某一个出现错误,即可回滚到原来的状态,从而保证数据库数据完整性. 举例:有这样一张表 从表里可以看出张 ...

  4. 10.mysql事务管理及python操作

    在用户操作MySQL过程中,对于一般简单的业务逻辑或中小型程序而言,无需考虑应用MySQL事务.但在比较复杂的情况下,往往用户在执行某些数据操作过程中,需要通过一组SQL语句执行多项并行业务逻辑或程序 ...

  5. 跟面试官侃半小时MySQL事务,说完原子性、一致性、持久性的实现

    提到MySQL的事务,我相信对MySQL有了解的同学都能聊上几句,无论是面试求职,还是日常开发,MySQL的事务都跟我们息息相关. 而事务的ACID(即原子性Atomicity.一致性Consiste ...

  6. 学习ThinkPHP的第20天--MySQL事务操作、查询事件、一对一关联

    之所以从20天才开始写随笔记是因为之前没搞自己的博客 从20天开始记录我在ThinkPHP中的点点滴滴 1.MySQL事务操作 /**事务操作*/ //startTrans启动事务.rollback回 ...

  7. MySQL 事务配置命令行操作和持久化

    MySQL 事务配置命令行操作和持久化 参考 MySQL 官方参考手册 提供 5.5 5.6 5.7 8.0 版本的参考手册 https://dev.mysql.com/doc/refman/5.5/ ...

  8. MySQL 多表查询与事务的操作

    表连接查询 什么是多表查询 # 数据准备 # 多表查询的作用 * 比如:我们想查询孙悟空的名字和他所在的部门的名字,则需要使用多表查询 # 如果一条 SQL 语句查询多张表,因为查询结果在多张不同的表 ...

  9. mysql数据库事务的操作与理解

    --------------------事务----------------------------------------------查询mysql事务隔离级别1.查看当前会话隔离级别select ...

  10. MySql事务概述

    事务是访问并更新数据库中各种数据项的一个程序执行单元.在事务中的操作,要么都执行修改,要么都不执行,这就是事务的目的,也是事务模型区别于文件系统的重要特征之一. 严格上来说,事务必须同时满足4个特性, ...

随机推荐

  1. pip模块的使用

    安装pip: sudo apt-get install python-pip           (python2的安装) sudo apt-get install python3-pip      ...

  2. thrift 知识点

    mac下,thrift 安装 mac下,最简单安装thrift的方法:使用brew安装 brew update brew install thrift 验证安装成功:thrift --help 安装出 ...

  3. Package rdkafka was not found in the pkg-config search path.

    问题 在使用confluent-kafka-go 时遇到如下问题: $ go build t.go # pkg-config --cflags rdkafka Package rdkafka was ...

  4. JZ2440 裸机驱动 第14章 ADC和触摸屏接口

    本章目标:     了解S3C2410/S3C2440和触摸屏的结构:     了解电阻触摸屏的工作原理和等效电路图:     了解S3C2410/S3C2440触摸屏控制器的多种工作模式:     ...

  5. json格式字符串处理

    public class InternalClass         {             public int MID;             public string Name;     ...

  6. 把存储过程SELECT INTO到临时表

    在开发过程中,很多时候要把结果集存放到临时表中,常用的方法有两种. 一. SELECT INTO1. 使用select into会自动生成临时表,不需要事先创建12 select * into #te ...

  7. 利用Python玩微信跳一跳

    创建python项目jump_weixin,新建python程序jump.py 需要4个辅助文件[adb.exe,AdbWinApi.dll,AdbWinUsbApi.dll,fastboot.exe ...

  8. qt ISO C++ forbids declaration of 'XXXX' with no type

    error: ISO C++ forbids declaration of 'XXXX' with no type   出现这个错误,一般是由于两个CPP相互都相互包含了对方的头文件造成的,比如: 当 ...

  9. robots写法及相关命令介绍

    当一个搜索蜘蛛访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果存在,搜索机器人就会按照该文件中的内容来确定访问 的范围:如果该文件不存在,所有的搜索蜘蛛将能够访问网站上所有 ...

  10. netty初步

    netty是java的高性能socket框架,linux下基epoll,这里不对他多牛逼作分析,网上资料很多,这里针对一般socket的业务作个例子 几个基本概念: channel类似于socket句 ...