美文网首页
事务的概念以及处理方式

事务的概念以及处理方式

作者: 加一片柠檬233 | 来源:发表于2019-04-07 16:59 被阅读0次
1. 概念

数据库事务(Database Transaction),是指作为单个逻辑工作单元执行的一系列操作,要么完全执行,要么完全地不执行。

2.事务的特性(ACID)
  • 原子性(Atomicity): 事务中的所有数据库操作是一个整体,是不可分割的,不会只是执行某一段数据库操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。
  • 一致性(Consistency): 如果一个事务原子地在一个一致地数据库中独立运行,那么在它执行之后,数据库的状态一定是一致的。
  • 隔离性 (Isolation):数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。事务隔离分为不同级别,包括读未提交(Read uncommitted)、读提交(read committed)、可重复读(repeatable read)和串行化(Serializable).
  • 持久性(Durability): 事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。
3. 使用
  1. BEGIN 开始一个事务

  2. ROLLBACK 事务回滚

  3. COMMIT 事务确认

  4. 直接用 SET 来改变 MySQL 的自动提交模式:
    SET AUTOCOMMIT=0 禁止自动提交
    SET AUTOCOMMIT=1 开启自动提交

mysql> CREATE TABLE student (
 `id` INT NOT NULL,
`name` VARCHAR(100) NOT NULL,
`age` INT NOT NULL,
`sex` VARCHAR(100) NOT NULL
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

mysql> select * from student;   //empty
mysql> SET AUTOCOMMIT=0;
mysql> begin;  //开始事务
mysql> INSERT INTO student VALUES(1,'张三',18,'男');
mysql> INSERT INTO student VALUES(2,'李四',20,'女');
mysql> commit; // 提交事务
mysql>  select * from student;
+------+------+------+------+
| id   | name | age | sex  |
+------+------+------+------+
| 1    | 张三 |  18  |  男  |
| 2    | 李四 |  20  |  女  |
+------+------+------+------+

mysql> begin;    //开始事务
Query OK, 0 rows affected (0.00 sec)
 
mysql>  INSERT INTO student VALUES(3,'王五',19,'女');
mysql> rollback;   
Query OK, 0 rows affected (0.00 sec)
 
mysql>   select * from student;   // 因为回滚所以数据没有插入
+------+------+------+------+
| id   | name | age | sex  |
+------+------+------+------+
| 1    | 张三 |  18  |  男  |
| 2    | 李四 |  20  |  女  |
+------+------+------+------+

相关文章

  • 事务的概念以及处理方式

    1. 概念 数据库事务(Database Transaction),是指作为单个逻辑工作单元执行的一系列操作,要么...

  • 事务—【02】SpringBoot使用JTA Atomikos实

    0. 前置知识 0.1 事务的一些基本概念 上篇说了事务的一些概念和Spring中的一些接口定义以及单数据源事务的...

  • 分布式事务的典型处理方式

    参考来源 分布式事务的典型处理方式:2PC、TCC、异步确保和最大努力型 分布式事务的典型处理方式:2PC、TCC...

  • mysql的锁和事务隔离级别

    一 锁的分类以及实现 1.1 锁概念 共享锁:共享锁加上了,只能读不能写,事务a和事务b都可以读数据,但是如果事务...

  • 分布式事务处理方式

    分布式事务的典型处理方式 柔性事务和刚性事务 柔性事务满足BASE理论(基本可用,最终一致)。 刚性事务满足ACI...

  • Spring学习之声明式事务管理

    Spring学习之声明式事务管理 前言 在前面的小节中,我们学习了关于事务的概念以及事务管理的重要性,并且通过编程...

  • Spring学习之编程式事务管理

    Spring学习之编程式事务管理 前言 在前面的内容,基本已经学习了事务的基本概念以及事务隔离级别等,接下来的几个...

  • 缓慢变化维 - 理论与实践

    介绍 概念 应用场景 处理方式 使用 存在的问题 实践应用 基础数据 处理方式a 处理方式b 优劣对比 总结 介绍...

  • 事务的概念

    原子性:事务中的操作要嘛都正确执行,要嘛都不执行。(回滚)一致性: 依赖于原子性,对于关系数据库,表与表之间是...

  • 分布式事务 Seata(一) 理解什么是XA 2PC、3PC

    数据库事务的概念 在讲述分布式事务的概念之前,我们先来回顾下事务相关的一些概念。 事务的基本概念: 就是一个程序执...

网友评论

      本文标题:事务的概念以及处理方式

      本文链接:https://www.haomeiwen.com/subject/afpsiqtx.html