mysql事务操作

事务的应用场景说明

什么是事务:在实际的开发过程中,一个业务操作如:转账,往往是要多次访问数据库才能完成,转账是一个用户扣钱,另一个用户加钱。如果其中有一条SQL语句出现异常,这条SQL就可能执行失败。
事务执行是一个整体,所有的SQL语句都必须执行成功。如果其中有一条SQL语句出现异常,则所有的SQL语句都要回滚,整个业务执行失败。
手动提交事务
开启事务:start transaction;
提交事务:commit;
回滚事务:rollback;
手动提交事务使用过程:
执行成功的情况:开启事务->执行多条SQL语句->成功提交事务
执行失败的情况:开启事务->执行多条SQL语句->事务的回滚
自动提交事务
MySQL默认每一条DML(增删改)语句都是一个单独的事务,每条语句都会自动开启一个事务,语句执行完毕,自动提交事务,MySQL默认开始自动提交事务
取消自动事务:
查看MySQL是否开启自动提交事务:select @@autocommit; @@表示全局变量,1表示开启,0表示关闭;
取消自动提交事务:set @@autocommit=0;
**事务原理:**事务开启之后,所有的操作都会临时保存到事务日志中,事务日志只有在得到commit命令才会同步到数据表中,其他任何情况都会清空事务日志(rollback ,断开连接)
事务步骤

  1. 客户端连接数据库服务器,创建连接时创建此用户临时日志文件
  2. 开启事务以后,所有的操作都会先写入到临时日志文件中
  3. 所有的查询操作从表中查询,但会经过日志文件加工后才返回
  4. 如果事务提交则将日志文件中的数据写到表中,否则清空日志文件。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值