Mariadb-transactions

提供:Dev Guides
移動先:案内検索

MariaDB-トランザクション

トランザクションは、順次グループ操作です。 これらは単一のユニットとして機能し、グループ内のすべての操作が正常に実行されるまで終了しません。 グループ内の単一障害により、トランザクション全体が失敗し、データベースに影響を与えません。

トランザクションはACID(原子性、一貫性、分離、および耐久性)に準拠しています-

  • Atomicity -失敗時に中止し、変更をロールバックすることにより、すべての操作の成功を保証します。
  • 一貫性-データベースが正常なトランザクションに変更を適用することを保証します。
  • 分離-トランザクションの独立したトランザクション操作を可能にします。
  • 耐久性-システム障害が発生した場合に成功したトランザクションの永続性を保証します。

トランザクション文の先頭には、START TRANSACTION文とそれに続くCOMMITおよびROLLBACK文があります-

  • START TRANSACTIONはトランザクションを開始します。
  • COMMITは、データへの変更を保存します。
  • ROLLBACKはトランザクションを終了し、変更を破棄します。

トランザクションが成功すると、COMMITが機能します。 失敗すると、ROLLBACKが機能します。

-一部のステートメントは暗黙的なコミットを引き起こし、トランザクション内で使用するとエラーを引き起こします。 このようなステートメントの例には、CREATE、ALTER、およびDROPが含まれますが、これらに限定されません。

MariaDBトランザクションには、SAVEPOINTやLOCK TABLESなどのオプションも含まれます。 SAVEPOINTは、ROLLBACKで使用する復元ポイントを設定します。 LOCK TABLESを使用すると、セッション中にテーブルへのアクセスを制御して、特定の期間中の変更を防ぐことができます。

AUTOCOMMIT変数は、トランザクションを制御します。 1を設定すると、すべての操作が成功したトランザクションと見なされ、0を設定すると、明示的なCOMMITステートメントでのみ変更の永続性が発生します。

トランザクションの構造

トランザクションステートメントの一般的な構造は、START TRANSACTIONで始まることで構成されます。 次のステップは、1つ以上のコマンド/操作の挿入、エラーをチェックするステートメントの挿入、検出されたエラーを管理するROLLBACKステートメントの挿入、最後に成功した操作に変更を適用するCOMMITステートメントの挿入です。

以下に示す例を確認します-

START TRANSACTION;
SELECT name FROM products WHERE manufacturer = 'XYZ Corp';
UPDATE spring_products SET item = name;
COMMIT;