一、set autocommit = 0mysql
关闭当前会话中事务的自动提交,须要手动 commit 或者 rollback,至关于开启一个全局的事务。在 mysql 的事务中,默认 autocommit = 1,每一次 sql 操做都被认为是一个单次的事务,被隐式提交sql
二、start transaction数据库
挂起 autocommit 的状态,开启一个事务上下文。首先数据库会隐式提交以前的还未被提交的操做,同时开启一个新事务。挂起 autocommit 的意思是保存 autocommit 的当前状态,而后 start transaction,直到 commit or rollback 结束本次事务,再恢复以前挂起的 autocommit 的状态。事务
若是 start transaction 前 autocommit = 1,则完成本次事务后 autocommit 仍是 1it
若是 start transaction 前 autocommit = 0,则完成本次事务后 autocommit 仍是 0,接下来的操做你仍需手动 commit 才能够提交。io