事务

1.什么是事务

是数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。
事务指逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功。
2.数据库的四个特性(ACID)
原子性(Atomicity):事务作为一个整体被执行,包含在其中的对数据库的操作要么全部被执行,要么都不执行。
一致性(Consistency):事务应确保数据库的状态从一个一致状态转变为另一个一致状态。一致状态的含义是数据库中的数据应满足完整性约束。
隔离性(Isolation):多个事务并发执行时,一个事务的执行不应影响其他事务的执行。
持久性(Durability):已被提交的事务对数据库的修改应该永久保存在数据库中。
3.事务命令
开启事务: start transaction
回滚事务:rollback
提交事务:commit
设置回滚点s1: savepoint s1;
回滚到保存点s1:rollback to savepoint s1;

4.事务的隔离级别

数据库事务的隔离级别有4种,由低到高分别为Readuncommitted(读未提交)、Readcommitted(读已提交)、Repeatableread(可重复读)、Serializable(可重复读)

不考虑隔离性可能发生的问题:脏读、不可重复读、虚读(幻读)
脏读 :指一个事务读取了另外一个事务未提交的数据。
不可重复读 :在一个事务内读取表中的某一行数据,多次读取结果不同。(一个事务读取到了另外一个事务提交的数据)
幻读:读整个表,即表的行数,例如第一次读某个表有3条记录,第二次读该表又有4条记录。


image.png
image.png

image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文详细介绍四种事务隔离级别,并通过举例的方式说明不同的级别能解决什么样的读现象。并且介绍了在关系型数据库中不同的...
    程序员文集阅读 1,579评论 0 0
  • http://baijiahao.baidu.com/s?id=1581064626251873652&wfr=s...
    hekang01阅读 3,961评论 0 0
  • MySQL 事务MySQL 事务主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中,你删除一个人员,你...
    dancer4code阅读 3,134评论 0 2
  • 本篇文章主要介绍的是 MySQL / JDBC 中的事务,为了方便读者浏览,这里默认需要读者已经掌握 SQL基础 ...
    SawyerZh阅读 5,501评论 7 31
  • 本文包括:1、事务概念2、MySQL管理事务3、JDBC控制事务进程4、事务的特性(ACID)5、事务的隔离级别6...
    廖少少阅读 4,286评论 0 3