在mysql中,有一个变量autocommit,表示自动提交,默认为1,表示开启自动提交。通过以下命令查询
select @@autocommit;
当autocommit为1时,任何一条sql语句都是一个事务,执行完由mysql自动提交。如果想自己决定什么时候提交或回滚,需要显示的使用begin语句手动开启一个事务,然后显示的使用commit或rollback进行提交或回滚。
通过以下命令,可以将自动提交改为手动提交
set @@autocommit = 0;
当autocommit为0时,执行一条sql语句,mysql会默认开启一个事务,但是不会提交,后续在执行多个sql语句,只要没有手动执行commit命令。这些sql语句都处于一个事务中,知道手动执行commit或rollback命令。