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; :::
