MySQL【事务】

事务处理:

方案一:

start transaction;开启事务
commit;            提交事务
rollback;          回滚事务

常见的组合:
提交:

start transaction;
   sql语句
commit;

回滚:

start transaction;
   sql语句
rollback;

在这里插入图片描述
方案二:

select @@autocommit//查看当前的提交方式是自动还是手动。
1:自动提交
0:手动提交
set @@autocommit = 0; //改为手动提交

在这里插入图片描述

事务的四大特性:

1、原子性:原子是化学反应中最小的粒子,不能再分割了。
2、持久性:就是指通过事务操作完的数据,也是永久的存储,永久的改变。
3、一致性:在使用事务操作的时候,操作前和操作后的数据是一致的。
4、隔离性:事务与事务之间是没有关系的,互相隔离,互相不干扰。但是,当多个事务并发操作同一张表的时候,就会打破隔离性。

如果隔离性被打破就会产生一些问题?

1、脏读:事务A 读到了 事务B 的未提交的数据。
2、不可重复读:事务A 读到了 事务B已经提交后的修改(update)的数据。
3、虚读(幻读):事务A 读到了 事务B 已经提交后的增加(insert)或者减少的数据。

事务的隔离级别?

1、read uncommitted:设置这个隔离级别,上面的山歌问题都会发生。
2、read committed(Oracle的默认隔离级别):设置这个隔离级别,能够解决脏读,但是会产生幻读和不可重复读。
3、repeattable read(MySQL的默认隔离级别):设置这个隔离级别,能够解决脏读,不可重复读,但是会产生幻读。
4、serializable:设置这个隔离级别,都能够解决。

查看当前的隔离级别?

select @@tx_isolation

修改隔离级别?

set global transaction isolation level ???;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值