MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLにおけるトランザクションの動作管理の仕組みとは?2つのモードを解説

MySQLでは、セッション変数「AUTOCOMMIT」の設定値によって、トランザクションの動作を制御できます。この設定には大きく分けて以下の2つのモードが存在します。

Autocommit On(自動コミット有効)

これはMySQLのデフォルトモードです。このモードが有効な場合、トランザクション内のステートメントであるかどうかにかかわらず、実行された各SQLステートメントはそれぞれ独立した完全なトランザクションとして扱われ、実行が完了した時点で自動的にコミットされます。

このモードは、セッション変数 AUTOCOMMIT を 1 に設定することで有効化できます。

SET AUTOCOMMIT = 1
mysql> SET AUTOCOMMIT = 1;
Query OK, 0 rows affected (0.07 sec)

Autocommit Off(自動コミット無効)

こちらはデフォルトではないモードです。このモードでは、以降に実行される一連のSQLステートメントが1つのトランザクションとして扱われ、明示的に COMMIT ステートメントを実行するまで、どの変更もデータベースに確定(コミット)されません。

このモードは、セッション変数 AUTOCOMMIT を 0 に設定することで有効化できます。

SET AUTOCOMMIT = 0
mysql> SET AUTOCOMMIT = 0;
Query OK, 0 rows affected (0.00 sec)

補足:現在の設定を確認する方法

現在のセッションでどちらのモードが有効になっているかは、次のクエリで確認できます。戻り値が「1」なら Autocommit On、「0」なら Autocommit Off です。

SELECT @@AUTOCOMMIT;

また、AUTOCOMMIT の設定を変更せずに一時的にトランザクションを開始したい場合は、START TRANSACTION または BEGIN ステートメントを使用する方法もあります。この場合、明示的な COMMIT または ROLLBACK を実行するまで変更は確定されません。

  1. Windows 8でWindowsサービスを管理・最適化する方法

    Windowsサービスとは、Windows上でバックグラウンドで動作する実行ファイルのことです。ほとんどのWindowsサービスはシステム起動と同時に開始され、特定のタスクを継続的に実行したり、必要に応じてアクションをトリガーしたりする役割を担っています。 サービスは大きく分けて2つのグループに分類できます。1つ目はMicrosoftが標準で搭載しているサービス、2つ目はサードパーティ製ソフトウェアが追加したサービスです。 サービスへのアクセスと管理方法 Windowsでは、コンピューターにインストールされたサービスにアクセスして管理するための方法がいくつか用意されています。 1. タスクマ

  2. MySQLで@記号を使う方法!ユーザー定義変数の基本と実例をわかりやすく解説

    MySQLで@記号を使用するには、SETコマンドを利用します。@記号は、セッション内で有効なユーザー定義変数を設定する際に使われる記号です。変数に値を格納しておけば、後続のクエリ内でその値を何度でも再利用できるため、条件の共通化や一時的な値の保持に非常に便利です。 @記号によるユーザー定義変数の基本構文 ユーザー定義変数を設定する基本的な構文は以下のとおりです。 SET @anyVariableName := yourValue; :=は代入演算子で、右側の値を左側の変数に代入します。これにより、以降のSQL文の中で@anyVariableNameを参照できるようになります。 サンプルテーブル