本地使用mysql测试结果如下,
没有使用start transaction的情况下:
- 如果set autocommit=1,则每一条语句默认提交;
- 如果set autocommit=0,则这条语句默认不提交,要提交必须使用commit才行;
有start transaction的情况下:
set autocommit=1:
- 如果最后使用了rollback,则事务回滚;
- 如果最后使用了commit,则事务执行;
- 如果最后没有使用rollback也没有使用commit,而是退出了,则事务回滚;
set autocommit=0:
- 如果最后使用了rollback,则事务回滚;
- 如果最后使用了commit,则事务执行;
- 如果最后没有使用rollback,也没有使用commit,而是退出了,则事务回滚;
附:
mysql官方文档:https://dev.mysql.com/doc/refman/8.0/en/innodb-autocommit-commit-rollback.html
11