MariaDB-トランザクション
トランザクションは、順次グループ操作です。これらは単一のユニットとして機能し、グループ内のすべての操作が正常に実行されるまで終了しません。グループ内の単一障害により、トランザクション全体が失敗し、データベースに影響を与えません。
トランザクションはACID(Atomicity、Consistency、Isolation、およびDurability)に準拠しています-
Atomicity −失敗時に中止し、変更をロールバックすることにより、すべての操作の成功を保証します。
Consistency −データベースがトランザクションの成功に変更を適用することを保証します。
Isolation −トランザクションの独立したトランザクション操作を可能にします。
Durability −システム障害が発生した場合でも、成功したトランザクションの永続性を保証します。
トランザクションステートメントの先頭には、START TRANSACTIONステートメントがあり、その後にCOMMITステートメントとROLLBACKステートメントが続きます-
STARTTRANSACTIONはトランザクションを開始します。
COMMITは、データへの変更を保存します。
ROLLBACKはトランザクションを終了し、変更を破棄します。
トランザクションが成功すると、COMMITが機能します。失敗すると、ROLLBACKが機能します。
Note−一部のステートメントは暗黙的なコミットを引き起こし、トランザクション内で使用するとエラーも引き起こします。このようなステートメントの例には、CREATE、ALTER、およびDROPが含まれますが、これらに限定されません。
MariaDBトランザクションには、SAVEPOINTやLOCKTABLESなどのオプションも含まれています。SAVEPOINTは、ROLLBACKで使用する復元ポイントを設定します。LOCK TABLESを使用すると、セッション中のテーブルへのアクセスを制御して、特定の期間中の変更を防ぐことができます。
AUTOCOMMIT変数は、トランザクションの制御を提供します。1に設定すると、すべての操作が成功したトランザクションと見なされ、0に設定すると、変更の永続性が明示的なCOMMITステートメントでのみ発生します。
トランザクションの構造
トランザクションステートメントの一般的な構造は、STARTTRANSACTIONで始まります。次のステップは、1つ以上のコマンド/操作の挿入、エラーをチェックするステートメントの挿入、検出されたエラーを管理するためのROLLBACKステートメントの挿入、最後に成功した操作に変更を適用するためのCOMMITステートメントの挿入です。
以下の例を確認してください-
START TRANSACTION;
SELECT name FROM products WHERE manufacturer = 'XYZ Corp';
UPDATE spring_products SET item = name;
COMMIT;