テーブルレベルロックモード ACCESS SHARE,ROW SHARE,ROW EXCLUSIVE...

-ACCESS SHAREROW SHAREROW EXCLUSIVESHARE UPDATE EXCLUSIVESHARESHARE ROW EXCLUSIVEEXCLUSIVEACCESS EXCLUSIVE
ACCESS SHAREX
ROW SHAREXX
ROW EXCLUSIVEXXXX
SHARE UPDATE EXCLUSIVEXXXXX
SHAREXXXXX
SHARE ROW EXCLUSIVEXXXXXX
EXCLUSIVEXXXXXXX
ACCESS EXCLUSIVEXXXXXXXX
  • 例えばBEGIN; SELECT * FROM t1はACCESS SHAREを獲得する。BEGIN; ALTER TABLE t1 ADD COLUMN x intはACCESS EXCLUSIVEを獲得する
  • 上の表にあるようにこの二つのロックは衝突する(X)のでもし先にSELECTを実行していたら、ALTERは実行がブロックされる。SELECTがCOMMITされた後に、ALTERは実行される

参考

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


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS

Last-modified: 2021-06-21 (月) 14:06:54