模式種類: 8種,汗
ACCESS SHARE MODE
ROW SHARE MODE
ROW EXCLUSIVE MODE
SHARE UPDATE EXCLUSIVE MODE
SHARE MODE
SHARE ROW EXCLUSIVE MODE
EXCLUSIVE MODE
ACCESS EXCLUSIVE MODE
可看一看 [url]http://www.phpchina.com/manual/PostgreSQL/sql-lock.html[/url]
[url]http://elicecn.byethost16.com/docs/postgresql-8.2.3-zh_CN/explicit-locking.html#LOCKING-TABLES[/url]
的說明。
太複雜了
簡單的說一下
如果你什麼都不寫,隻是lock table xxx;那麼就是ACCESS EXCLUSIVE MODE,是最進階的鎖,會和其他讀沖突.在鎖成功之前,其他事務的讀操作都要結束才行。
一般都是用lock table xxx in EXCLUSIVE MODE,鎖之前你讀可以,鎖之後你讀可以,你寫就不行。
row exclusive mode經過實驗,好像并沒有鎖住任何行,其他事務還是可以update delete insert,這個行為就和語義不一緻了.
是否這樣了解?row打頭的這些,隻是在行鎖發生時,對表做的一個标記?即一行發生鎖,産生一行鎖,也産生一“row exclusive”表鎖。而單獨執行 lock table in row exclusive mode隻是産生“row exclusive”表鎖,而實際上不存在一個真正意義的行鎖