COMMIT TRANSACTION を省略すると、トランザクションは自動的にロールバックされますか?

Susan Sarandon
リリース: 2024-10-24 15:12:02
オリジナル
885 人が閲覧しました

Does COMMIT TRANSACTION Omission Automatically Rollback Transactions?

COMMIT TRANSACTION が省略された場合は自動ロールバック

指定された SQL ステートメント内:

START TRANSACTION;
BEGIN;
INSERT INTO prp_property1 (module_name,environment_name,NAME,VALUE) VALUES ('','production','','300000');

/** Assume there is syntax error SQL here...**/
Blah blah blah

DELETE FROM prp_property1 WHERE environment_name = 'production';
COMMIT TRANSACTION;
ログイン後にコピー

次のような疑問が生じます。構文エラーにより COMMIT TRANSACTION ステートメントに到達しないため、トランザクションは自動的にロールバックされます。

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

想定に反して、トランザクションは自動的にはロールバックされません。エラーが発生するとロールバックされます。この動作は通常、クライアント アプリケーションの設定で実装されます。たとえば、MySQL コマンドライン クライアントは実行を終了し、エラーが発生すると終了します。その結果、進行中のトランザクションがロールバックされます。

カスタム アプリケーションを開発する場合、開発者はトランザクション ロールバック ポリシーを制御できます。ただし、特定の例外が存在します。

  • データベース接続を終了すると、常に進行中のトランザクションがロールバックされます。
  • デッドロックまたはロック待機タイムアウトも、暗黙的にロールバックをトリガーします。

これらの特定のシナリオ以外では、エラーによって自動的にロールバックが発生することはありません。エラーが返され、開発者はエラーにもかかわらずトランザクションをコミットするなど、次のアクションを自由に決定できます。

以上がCOMMIT TRANSACTION を省略すると、トランザクションは自動的にロールバックされますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!