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