• 追加された行はこの色です。
  • 削除された行はこの色です。
#author("2021-06-21T13:59:16+09:00","default:ryuichi","ryuichi")
#author("2021-06-21T14:06:54+09:00","default:ryuichi","ryuichi")
* テーブルレベルロックモード ACCESS SHARE,ROW SHARE,ROW EXCLUSIVE... [#c54dc504]

,要求するロックモード,現在のロックモード
,ACCESS SHARE,ROW SHARE,ROW EXCLUSIVE,SHARE UPDATE EXCLUSIVE,SHARE,SHARE ROW EXCLUSIVE,EXCLUSIVE,ACCESS EXCLUSIVE
,ACCESS SHARE, , , , , , , ,X
,ROW SHARE, , , , , , ,X,X
,ROW EXCLUSIVE, , , , ,X,X,X,X
,SHARE UPDATE EXCLUSIVE, , , ,X,X,X,X,X
,SHARE, , ,X,X, ,X,X,X
,SHARE ROW EXCLUSIVE, , ,X,X,X,X,X,X
,EXCLUSIVE, ,X,X,X,X,X,X,X
,ACCESS EXCLUSIVE,X,X,X,X,X,X,X,X

|-|ACCESS SHARE|ROW SHARE|ROW EXCLUSIVE|SHARE UPDATE EXCLUSIVE|SHARE|SHARE ROW EXCLUSIVE|EXCLUSIVE|ACCESS EXCLUSIVE|
|ACCESS SHARE||||||||X|
|ROW SHARE|||||||X|X|
|ROW EXCLUSIVE|||||X|X|X|X|
|SHARE UPDATE EXCLUSIVE||||X|X|X|X|X|
|SHARE|||X|X||X|X|X|
|SHARE ROW EXCLUSIVE|||X|X|X|X|X|X|
|EXCLUSIVE||X|X|X|X|X|X|X|
|ACCESS EXCLUSIVE|X|X|X|X|X|X|X|X|

- 例えば'''BEGIN; SELECT * FROM t1'''はACCESS SHAREを獲得する。'''BEGIN; ALTER TABLE t1 ADD COLUMN x int'''はACCESS EXCLUSIVEを獲得する
- 上の表にあるようにこの二つのロックは衝突する(X)のでもし先にSELECTを実行していたら、ALTERは実行がブロックされる。SELECTがCOMMITされた後に、ALTERは実行される

** 参考 [#qbb0419d]

https://www.postgresql.org/docs/current/explicit-locking.html#TABLE-LOCK-COMPATIBILITY


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS