スクロール可能なカーソルとトランザクション分離
次の表型リストに、変更の可視性を制御する要因を示します。
以下の変更が加えられた: | 以下の可視性に依存する: |
---|---|
Cursor | カーソルの種類、カーソルの実装 |
同じトランザクション内の他のステートメント | カーソルの種類 |
他のトランザクションのステートメント | カーソルの種類、トランザクション分離レベル |
これらの要因を次の図に示します。
次の表は、カーソルの種類ごとに、それ自体、それ自体のトランザクション内の他の操作、およびその他のトランザクションによって行われた変更を検出する機能をまとめたものです。 後者の変更の可視性は、カーソルの種類と、カーソルを含むトランザクションの分離レベルによって異なります。
カーソルの種類・アクション | 自己 | 所有 Txn |
Othr Txn (RU[a]) |
Othr Txn (RC[a]) |
Othr Txn (RR[a]) |
Othr Txn (S[a]) |
---|---|---|---|---|---|---|
Static | ||||||
Insert | Maybe[b] | いいえ | 番号 | 番号 | 番号 | いいえ |
更新する | Maybe[b] | いいえ | 番号 | 番号 | 番号 | いいえ |
削除 | Maybe[b] | いいえ | 番号 | 番号 | 番号 | いいえ |
キーセット ドリブン | ||||||
Insert | Maybe[b] | いいえ | 番号 | 番号 | 番号 | いいえ |
更新する | はい | イエス | イエス | 有効 | No | いいえ |
削除 | Maybe[b] | はい | イエス | 有効 | No | いいえ |
動的 | ||||||
Insert | はい | イエス | イエス | イエス | 有効 | いいえ |
更新する | はい | イエス | イエス | 有効 | No | いいえ |
削除 | あり | イエス | イエス | 有効 | No | いいえ |
[a] かっこ内の文字は、カーソルを含むトランザクションの分離レベルを示します。他のトランザクション (変更が行われた) の分離レベルは関係ありません。
RU:Read uncommitted (コミットされていないものの読み取り)
RC: Read committed (コミットされているものの読み取り)
RR: Repeatable read (反復不可能な読み取り)
S: Serializable (シリアル化可能)
[b] カーソルの実装方法によって異なります。 カーソルがこのような変更を検出できるかどうかは、SQLGetInfo の SQL_STATIC_SENSITIVITY オプションを使用して報告されます。