MySQL6-事务

一、定义

MySQL6-事务

提交事务,才能执行语句 commit;

回滚事务,则不执行语句 rollback;

开启事务:start transaction

回滚:重新开始的意思

MySQL6-事务

undo log 恢复之前状态

MySQL6-事务

二、使用

–默认情况下mysql是开启了事务的

– 隐式事务(默认)

show variables like ‘%autocommit%’(自动提交)

MySQL6-事务

– 显示事务(需要手动提交)

set autocommit = 0

show variables like ‘%autocommit’

start transaction;

insert into balance values(4,‘李四’,490);

commit;

MySQL6-事务

有一条语句失败,事务都会失败,事务会自动回滚 userme是错误的

开启事务也可以用begin

MySQL6-事务

三、事物的隔离级别

加入锁(serializable),不可并发,其他线程会进行等待

0001=1;0010=2;0100=4;1000=8

MySQL6-事务

1.只关心当前窗口的隔离级别就好

2.脏读:可以读到其他窗口回滚后的数据

不可重复读:读的过程中有别的操作,两次读的数据就会不一样

可重复读:只读到其他窗口操作前的数据(默认隔离级别)避免不可重复读和脏读

幻读:读到其他窗口增加的数据

MySQL6-事务

MySQL6-事务

  • 练习:

自行联系