如何开启 MySQL 事务?
程序员小航
共 705字,需浏览 2分钟
·
2021-06-15 08:16
前言
本文主要介绍 MySQL 是如何开启一个事务的,相关资料也可以查阅官方文档。
https://dev.mysql.com/doc/refman/8.0/en/commit.html
方式 1
START TRANSACTION 或 BEGIN 开始新的事务 COMMIT 提交当前事务 ROLLBACK 回滚当前事务
这是大家熟知的一种方式,其中开启事务的方式 start transaction
和 begin
是相同的。
![](https://filescdn.proginn.com/21ac5260429ad50e2dbb0b5feda144d5/c89ef33103cc4721b89409044b09e703.webp)
方式 2
SET autocommit = 0;
默认情况下 autocommit = 1,是自动提交事务的。 autommit 是 session 级别的,就是当前连接更改了 autocommit,对其他连接没有影响。 设置 autocommit 之后,本次连接的所有 sql 都是事务的形式,比如每次 commit 提交。
![](https://filescdn.proginn.com/60b47754964439771a1327f0aeba1028/13432e4f1da673e702ab7f924a52854d.webp)
通过截图可以看出,有一个事务在执行,因为设置了 set autocommit = 0;
,所以后面的 update 操作修改结果,其他 session 并不会查到(RR 级别)。
这时候就需要自己手动执行 commit
。
注意的是,autocommit 没有进行更改,此时 autocommit 值还是 0,也就意味着这个 session 后续的 sql 都是需要手动 commit 的。
![](https://filescdn.proginn.com/4b043ea378ae438da27fb89f22fe74b0/ddfb0e1d7648cee058223d03db1ab837.webp)
- <End /> -
评论