MySQL 事务中发生错误,事务真的会回滚吗

image.png

如图,开启事务,第二条SQL发生错误,COMMIT之后发现第一条SQL并没有"回滚"。

MySQL 5.7
存储引擎InnoDB

在MySQL文档中发现这么一句话

InnoDB sometimes rolls back only the statement that failed, other times it rolls back the entire transaction.
https://dev.mysql.com/doc/ref...

如何理解上述现象?

阅读 369
评论
    2 个回答
    • 1.8k

    你这里开启了一个事物,并不是发生异常的时候就回滚的,

    而你下面直接commit提交了事物,那么成功执行语句就会成功了;

    如果你不执行提交事物的话,在当前连接关闭后,事物才会自动回滚。

      相似问题
      推荐文章