- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- PostgreSQL/SQL/ロック/行ロック - FOR SHARE へ行く。
- 1 (2021-06-17 (木) 15:43:25)
行ロック - FOR SHARE
Sesseion A | Session B |
======================================================================================================
=> BEGIN; SELECT * FROM t1 WHER | => | 1. FOR SHAREでSELECTすると、
E id = 1 FOR SHARE; | => | id=1な行がロックされるが、
id | n | => |
----+----- | => |
1 | 100 | => |
| => |
=*> | => BEGIN; SELECT * FROM t1 WHER | 2. 別のセッションからSELECTし
| E id = 1 FOR SHARE; | ても、ブロックされずにSELECTが
| id | n | 実行される
| ----+----- | もしAがFOR UPDATEでSELECTして
| 1 | 100 | いたら、BのSELECTはブロックされ
| | て、AがCOMMITするまでBは実行さ
| | れない
| |