事务简介
事务是一组操作的集合,不可分割,这些操作要么同时成功,要么同时失败。
流程:

事务操作
方式一
- 查看/设置事务提交方式
select @@autocommit;
set @@autocommit=0;
- 提交事务
commit;
- 回滚事务
rollback;
方式二
- 开启事务
start transaction或 begin;
- 提交事务
commit;
- 回滚事务
rollback;
事务四大特性(ACID)
并发事务问题
问题 |
描述 |
脏读 |
一个事务读到另外一个事务还没有提交的数据 |
不可重复读 |
一个事务先后读取同一条记录,但两次读取的数据不同,称之为不可重复读 |
幻读 |
一个事务按照条件查询数据时,没有对应的数据行,但是插入数据时,又发现这行数据已经存在,好像出现了“幻影” |
事务隔离级别
隔离级别 |
赃读 |
不可重复读 |
幻读 |
read uncommitted |
√ |
√ |
√ |
read committed |
× |
√ |
√ |
repeatable read(mysql默认) |
× |
× |
√ |
seriblizable |
× |
× |
× |
- 查看事务隔离级别
select @@transaction_isolation
- 设置事务隔离级别
set [session|global] transaction isolation level [隔离级别]