ユーザーは、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 中国語 Web サイトの他の関連記事を参照してください。