PostgreSQLはダーティリードをサポートしていません(READ UNCOMMITTED
)。 @a_horse_with_no_nameが指摘しているように、マニュアル
言う:
これは、データベースがサポートされていない分離レベルをサポートされている最強のレベルとして扱わなければならないという標準のルールに適合しています。
PostgreSQLで進行中のトランザクションからコミットされていないタプルを読み取るためのサポートされている方法はありません。主キーの重複値や一般的なカオスなどを取得できるとしたら、とにかくあまり役に立ちません。
進行中のトランザクションが相互に通信し、影響を与えることができるいくつかの方法:
- 共有クライアントアプリケーション経由(もちろん)
SEQUENCE
(およびSERIAL
)更新はコミット時ではなく、すぐに行われます- アドバイザリロック
- 通常の行とテーブルのロックですが、
READ COMMITTED
のルールの範囲内です 可視性 -
UNIQUE
およびEXCLUSION
制約
などのスーパーユーザー専用のデバッグ機能を使用して、コミットされていないタプルデータを表示することができます。 pageinspect 、ただし、データストアの内部を本当に理解している場合に限ります。データの回復とデバッグにのみ適しています。 16進出力の壁に複数のバージョンのデータが表示されます。