0
点赞
收藏
分享

微信扫一扫

mysql默认开启AutoCommit

爱奔跑的读书者 2022-03-11 阅读 75

        偶然发现mysql在增删改查数据之后不需要commit,执行commit显示影响的条数是0,查阅网上资料发现是安装mysql后其默认开启了AutoCommit模式(即每条sql都作为单独事务commit一次),这样对某些数据场景存在隐患。

首先说说个人对事务的理解,即一组修改数据库的sql语句组合而成为一个事务,所有sql都成功才真正的修改数据库,只要一个sql失败则全部撤销。

事务案例:A账户转账500元给B账户,需指向多条语句如下(任何一条失败则执行rollback操作,全部成功则执行commit操作。若打开AutoCommit选项则肯能造成金额丢失----即A账户减少余额成功B账户增加余额失败)

  1. 查询A账户是否存在
  2. 查询B账户是否存在
  3. 查询A账户余额是否大于等于500
  4. 减少A账户余额
  5. 增加B账户余额
  6. commit

mysql关闭自动提交的方法  set @@session.autocommit=0;

举报

相关推荐

0 条评论