ホームページ >データベース >mysql チュートリアル >COMMIT TRANSACTION を省略すると、トランザクションは自動的にロールバックされますか?
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 サイトの他の関連記事を参照してください。