mysql中 SET autocommit=0 与 START TRANSACTION 的区别 mysql中 SET autocommit=0 与 START TRANSACTION 的区别

2023-06-30

在MySQL中, SET autocommit=0;指事务非自动提交,自此句命令执行以后,

每个SQL语句或者语句块所在的事务都需要显式调用commit才能提交事务。


不管autocommit 是1还是0 :

START TRANSACTION + commit 数据才会生效,ROLLBACK会回滚。


当autocommit 为 0 时:

有没有START TRANSACTION都没关系。

只有当commit数据才会生效,ROLLBACK会回滚。


当autocommit 为1时 ,如果没有START TRANSACTION, 调用ROLLBACK是没有用的, 即便设置了SAVEPOINT。

 也就是说, 必须设置START TRANSACTION才能回滚。