SQL之事务:
事务: 一系列步骤的业务操作,被事务管理,原子性地完成或是失败
操作步骤是:
1.开启事务 start transaction;
2.一系列增删改表中数据 步骤
3.如果没问题:提交 commit;
如果有问题:回滚 rollback;
-- 当执行完第三步后,我们可以认为是执行完了一条事务
事务的提交方式:1.自动提交 2. 手动提交
1.mysql数据库中的事务默认是自动提交的,
一条对表中数据的增删改语句会自动提交一次事务,
不用开启事务,但是如果开启了事务,
在事务中执行表中数据的增删改语句,那么则需要等待提交过后才会生效
2.手动提交,则需要先开启事务,执行完后再手动提交。
查看事务的默认提交方式:
SELECT @@autocommit; 1:自动提交 0:手动提交
修改事务的默认提交方式:
SET @@autocommit = 1;
事务的四大特征:
1.原子性:操作不可分割
2.持久性:数据持久
3.隔离性:事务间不互相影响
4.一致性:数据总量是一致的,不凭空消失
事务间本该具备独立性,但是现实中往往出现交叉,产生一些问题:脏读、不可重复读、幻读。
1. 脏读 :脏读就是指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据。
2. 不可重复读 &