mysql事务AutoCommit

事务包括两类

  • 显式事务

关闭AutoCommit下的操作
以begin 或者start taransaction开始的操作

  • AC-NL-RO (auto-commit non-locking read-only)

可以理解为AutoCommit下的select操作
所以 可以知道普通的select 语句也使用了AC-NL-RO事务

AutoCommit 的危害

因为mysql默认安装的时候自动打开了autocommit语句 他造成的结果就是每一条的dml语句都会单独执行事务
就拿我们常见的 转账来说 a - 100 ; b + 100 ; 可能会造成金额丢失的问题 a 扣了钱 b 没有收到 因为update执行失败rollback了
所以我们需要关闭AutoCommit 把一组的dml语句使用事务来管理 一起成功一起失败

  • 关闭autocommit :::info set @@session.autocommit=0; :::