通过运行命令 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 事务?的详细内容。更多信息请关注PHP中文网其他相关文章!