MySQL_事务

1.概述

逻辑上的一组操作,组成这样操作的单元要么全部成功,要么全部失败
分类:
自动事务:一条sql语句就是一个事务,自动事务为MySql的默认事务

2.开启事务

手动开启事务:

(1)
start transaction;开启事务
commit:提交 //执行不出现正常,提交【未提交之前,修改是在临时区修改,提交之后再去修改数据库数据】
rollback;回滚 //当执行失败执行回滚即返回原状态

-- 开启事务
START TRANSACTION;
-- 转账
update account set money=money-100 where name='张三';
SELECT * from account;
-- 事务回滚:执行失败时回滚  
SELECT * from account;
ROLLBACK;
-- 提交
COMMIT;

补充:回滚点

回滚点设置
设置回滚点 :savepoint
回到回滚点 rollback to name
start TRANSACTION; --初始设置money=1000
UPDATE account set money=money-100 where name='张三';
UPDATE account set money=money-100 where name='张三';
UPDATE account set money=money-100 where name='张三';
SAVEPOINT a;//此时money=700
UPDATE account set money=money-100 where name='张三';
UPDATE account set money=money-100 where name='张三';
SELECT * from account;//money=500
ROLLBACK to a;
SELECT * FROM account;//money=700
COMMIT;

在这里插入图片描述

(2)设置MYSQL中自动提交参数

  • show variables like ‘%commit%’ //查看是否自动提交
    在这里插入图片描述

设置自动提交参数为OFF

  • List item
  • set autocommit =0;–0:off 1:on
-- 修改自动提交
set autocommit =0;

在这里插入图片描述

3.事务的特性

原子性

指原子的不可分割性,事务中的操作要么发生,要么全部不发生

一致性

指事务前后数据完整性必须保持一致

持久性

指一个事物一旦提交,在数据库存储的数据的改变是永久性的

隔离性

指多个用于并发操作数据库,互不影响,互不干扰
补充 如果不考虑隔离性,会发生的状况

并发访问的问题
脏读:一个事务读取到另一个事物还未提交的数据
不可重复读:多次读取事务的【内容】不一致,由其他用户更新数据库引起(update)
幻读:两次读事务的数据不一致,是由于其他用户的insert,delete操作引起的

4. 隔离级别:

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值