MySQL事务BEGIN 语句会马上启动事务吗?

本文基于 MySQL 8.0.32 源码,存储引擎为 InnoDB。

目录

  • 1. BEGIN 语句的七十二变

  • 2. BEGIN 语句都干什么了?

    • 2.1 提交老事务

    • 2.2 准备新事务

  • 3. 总结

正文

1. BEGIN 语句的七十二变

我们查看官方文档中开始一个事务的语法,会发现还挺复杂:

START TRANSACTION<br>    [transaction_characteristic [, transaction_characteristic] ...]<br><br>transaction_characteristic: {<br>    WITH CONSISTENT SNAPSHOT<br>  | READ WRITE<br>  | READ ONLY<br>}<br><br>BEGIN [WORK]<br>