ホームページ  >  記事  >  データベース  >  MySQL は例外時にトランザクションを自動的にロールバックするにはどうすればよいですか?

MySQL は例外時にトランザクションを自動的にロールバックするにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-20 17:27:15590ブラウズ

How Can MySQL Automatically Roll Back Transactions on Exceptions?

MySQL トランザクション: 例外が発生した場合の自動ロールバック

トランザクション内で複数の MySQL コマンドを実行する際にエラーを適切に処理して確実に実行することが重要です。データの整合性。このような場合、部分的な更新やデータの破損を防ぐために、例外が発生した場合はトランザクションをロールバックすることが望ましいです。

解決策: DECLARE ... HANDLER 構文

MySQL は、例外を処理し、エラーが発生した場合にトランザクションを自動的にロールバックするための DECLARE ... HANDLER 構文を提供します。使用方法は次のとおりです:

  1. プロシージャを作成します: トランザクションをストアド プロシージャ内にカプセル化し、例外を集中的に処理します。
  2. ブール変数を宣言します。 : エラーが発生したかどうかを追跡するためのブール変数 (_rollback など) を宣言します。
  3. DECLARE CONTINUE HANDLER: DECLARE CONTINUE HANDLER ステートメントを使用して、エラーが発生した場合に実行するアクションを指定します。 SQLEXCEPTION (または特定の例外タイプ) が発生しました。ロールバックが必要であることを示すには、_rollback 変数を 1 に設定します。
  4. トランザクションを実行します。 トランザクション内で SQL ステートメントを実行します。
  5. エラーを確認します。 : ステートメントを実行した後、_rollback の値を確認します。 1 の場合は、ROLLBACK を使用してトランザクションを手動でロールバックします。 0 の場合は、COMMIT を使用してトランザクションをコミットします。

DECLARE ... HANDLER 構文を利用すると、トランザクション中の例外がロールバックをトリガーし、データの不整合を防ぎ、データベースを維持できます。誠実さ。

以上がMySQL は例外時にトランザクションを自動的にロールバックするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。