ANSI/ISO SQL規格は、同時に実行されるトランザクション間で防ぐべき3つの現象ごとに、トランザクション隔離のレベルを4レベルに分けて定義しています。3つの望ましくない現象とは下記のものです。
4つの隔離レベルとその Table 9-1で示した動作との対応は次の表のようになります。
Table 9-1. SQL トランザクション隔離レベル
隔離レベル | ダーティリード | 反復不能読み取り | ファントムリード |
---|---|---|---|
Read uncommitted | 可能性あり | 可能性あり | 可能性あり |
Read committed | 安全 | 可能性あり | 可能性あり |
Repeatable read | 安全 | 安全 | 可能性あり |
Serializable | 安全 | 安全 | 安全 |
PostgreSQLはRead CommittedとSerializableの2つの隔離レベルを備えています。