MySQL学习笔记事务

Posted !0 !

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL学习笔记事务相关的知识,希望对你有一定的参考价值。

一、含义

事务:一条或多条sql语句组成一个执行单位,一组sql语句要么都执行要么都不执行

二、特点(ACID)

原子性(Atomicity):一个事务是不可再分割的整体,要么都执行要么都不执行
一致性(Consistency):一个事务可以使数据从一个一致状态切换到另外一个一致的状态
隔离性(Isolation):一个事务不受其他事务的干扰,多个事务互相隔离的
持久性(Durability):一个事务一旦提交了,则永久的持久化到本地

三、事务的使用步骤 ★

隐式(自动)事务:没有明显的开启和结束,本身就是一条事务可以自动提交,比如insert、update、delete
显式事务:具有明显的开启和结束

①开启事务
set autocommit=0;
start transaction;#可以省略

②编写一组逻辑sql语句
注意:sql语句支持的是insert、update、delete

设置回滚点:
savepoint 回滚点名;

③结束事务
提交:commit;
回滚:rollback;
回滚到指定的地方:rollback to 回滚点名;

四、并发事务

1、事务的并发问题

脏读:事务A读取了事务B更新的数据,然后B回滚,那么A读取的数据就是脏数据

不可重复读:事务A多次读取同一数据,事务B在事务A多次读取的过程中,对数据进行了更新并提交,导致事务A多次读取同一数据结果不一致。(注重更新)

幻读:A将数据库所有学生成绩从分数改成了等级,但是B在这个时候插入了一条带有分数的记录,当A改完之后发现还有一条记录没有改过来。(注重增删)

2、隔离级别

脏读不可重复读幻读
读未提交xxx
不可重复读xx
可重复读(mysql默认)x
串行化

以上是关于MySQL学习笔记事务的主要内容,如果未能解决你的问题,请参考以下文章

JAVAWEB学习笔记19

(MYSQL学习笔记4)事务的开启提交回滚

JavaWeb学习笔记七 事务

JAVAWEB学习笔记19_事务

day13_Mysql事物与数据库连接池学习笔记

MySQL学习笔记