Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.1 » SQL Anywhere サーバー SQL の使用法 » トランザクションと独立性レベル » 独立性レベルと一貫性

 

典型的な矛盾のケース

トランザクションの同時実行中に発生する可能性のある典型的な矛盾には 3 つのタイプがあります。(他のタイプの矛盾も発生し得るため、この 3 つがすべてというわけではありません)。これらの 3 つのタイプは ISO SQL/2008 標準に記載されており、低い独立性レベルで発生する可能性のある動作という観点で定義されています。

  • ダーティリード   トランザクション A がローを修正し、変更のコミットもロールバックもしないとします。その修正がコミットまたはロールバックされる前に、トランザクション B がそのローを読みます。その後、COMMIT が実行される前に、トランザクション A がさらにそのローを変更するか、またはその修正をロールバックしたとします。いずれの場合も、トランザクション B はコミットされなかった状態でローを読んでしまったことになります。

  • 繰り返し不可能読み出し   トランザクション A がローを読みます。次にトランザクション B がそのローを修正または削除して、COMMIT を実行します。トランザクション A がもう一度そのローを読もうとしたときには、ローは修正されているか、削除されてしまっています。

  • 幻ロー   トランザクション A が、一定の条件を満たすローのセットを読みます。次に、トランザクション B は、前にトランザクション A の条件を満たさなかったローで INSERT または UPDATE を実行します。トランザクション B はこれらの変更をコミットします。新しくコミットされたローはトランザクション A の条件を満たします。トランザクション A がもう一度データを読み込むと、更新されたローのセットを取得します。

 独立性レベルとダーティリード、繰り返し不可能読み出し、幻ロー
 参照

カーソル不安定性