MySQL 如何启动新的事务?
通过运行START TRANSACTION命令,用户可以在MySQL中启动新的事务。事务的行为将取决于SQL AUTOCOMMIT模式。默认模式是‘AUTOCOMMIT ON’模式,其中每个MySQL语句都被视为一个完整的事务,并在完成时默认提交。可以通过设置会话变量AUTOCOMMIT为1来启动它,如下所示:
SET AUTOCOMMIT = 1
mysql> SET AUTOCOMMIT = 1;
Query OK, 0 rows affected (0.07 sec)
如果用户想要更改MySQL事务的这种行为,则可以设置‘AUTOCOMMIT OFF’SQL模式,在此模式下,后续的一系列MySQL语句将像事务一样,除非发出显式的COMMIT语句,否则不会提交任何活动。在该模式下,新会话的第一个可执行语句将隐含启动一个新的多语句事务。可以通过将会话变量AUTOCOMMIT设置为0来启动它,如下所示:
SET AUTOCOMMIT = 0
mysql> SET AUTOCOMMIT = 0;
Query OK, 0 rows affected (0.00 sec)
对于InnoDB中的事务,不要使用SET AUTOCOMMIT = 0,而应使用
COMMIT
命令提交。
在两种SQL模式中,事务将通过以下START TRANSACTION命令启动:
mysql> START TRANSACTION;
Query OK, 0 rows affected (0.00 sec)
实际上,以上查询通知MySQL后续语句应被视为单个工作单元,直到事务已结束为止。
阅读更多:MySQL 教程