「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > SQL でトランザクションが自動的にロールバックされないのはどのような場合ですか?

SQL でトランザクションが自動的にロールバックされないのはどのような場合ですか?

2024 年 11 月 7 日に公開
ブラウズ:128

When is a Transaction Not Automatically Rolled Back in SQL?

自動トランザクション ロールバック

質問は、START TRANSACTION と で囲まれた SQL ステートメントのブロック内でエラーが発生した場合のトランザクションの動作を中心に展開しています。トランザクションをコミットします。 OP は、COMMIT TRANSACTION ステートメントの前に構文エラーが発生すると、トランザクションが自動的にロールバックされることを認識します。

トランザクション ロールバック メカニズム

いいえ、トランザクションはロールバックされませんエラーが発生するとすぐに元に戻ります。ただし、特定のクライアント アプリケーションでは、エラー処理に特定のポリシーが採用される場合があります。

たとえば、mysql コマンドライン クライアントの場合:

  • 実行中のエラーは通常、実行プロセスを停止し、クライアントを終了します。
  • トランザクションの進行中に終了すると、自動的にトランザクションがロールバックされます。 transaction.

ロールバック ポリシーのカスタマイズ

独自のアプリケーションを構築する場合、トランザクション ロールバック ポリシーを制御できます。ただし、ロールバックが強制される場合には例外があることに注意してください:

  1. クライアント切断: データベースを終了または切断すると、常にトランザクション ロールバックが開始されます。
  2. デッドロック/ロック待機タイムアウト: デッドロックまたはロック待機タイムアウトが発生すると、暗黙的なロールバックに時間がかかります。 place.

他のすべてのシナリオでは、トランザクション中にエラーが発生した場合、エラーが返され、開発者はトランザクションをコミットするか破棄するかを選択できます。

リリースステートメント この記事は次の場所に転載されています: 1729746768 権利侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3