亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > PostgreSQL > 正文

PostgreSQL7.0手冊-用戶手冊-19. SQL命令-LOCK

2019-09-08 23:33:13
字體:
來源:轉載
供稿:網友
LOCK
名稱
LOCK ― 在事務中顯式地鎖定一個表 

語法
LOCK [ TABLE ] name
LOCK [ TABLE ] name IN [ ROW | ACCESS ] { SHARE | EXCLUSIVE } MODE
LOCK [ TABLE ] name IN SHARE ROW EXCLUSIVE MODE
輸入
name 
要鎖定的現存的表. 
ACCESS SHARE MODE 
注意:這個鎖模式對被查詢的表自動生效。
這是最小限制的鎖模式,只與 ACCESS EXCLUSIVE 模式沖突。它用于保護被查詢的表免于被并行的 ALTER TABLE, DROP TABLE 和 VACUUM 對同一表操作的語句修改。 
ROW SHARE MODE 
注意:任何 SELECT FOR UPDATE 語句執行時自動生效。因為它是一個共享鎖,以后可能更新為 ROW EXCLUSIVE 鎖。
與 EXCLUSIVE 和 ACCESS EXCLUSIVE 鎖模式沖突?!?
ROW EXCLUSIVE MODE 
注意:任何 UPDATE, DELETE, INSERT 語句執行時自動生效。
與 SHARE, SHARE ROW EXCLUSIVE, EXCLUSIVE 和 ACCESS EXCLUSIVE 模式沖突?!?
SHARE MODE 
注意:任何 CREATE INDEX 語句執行時自動附加。
與 ROW EXCLUSIVE,SHARE ROW EXCLUSIVE,EXCLUSIVE 和 ACCESS EXCLUSIVE 模式沖突。這個模式防止一個表被并行更新?!?
SHARE ROW EXCLUSIVE MODE 
注意:這個模式類似 EXCLUSIVE MODE,但是允許其他事務的 SHARE ROW 鎖.
與 ROW EXCLUSIVE,SHARE,SHARE ROW EXCLUSIVE,EXCLUSIVE 和 ACCESS EXCLUSIVE 模式沖突?!?
EXCLUSIVE MODE 
注意:這個模式同樣比 SHARE ROW EXCLUSIVE 更有約束力;它阻塞所有并行的 SELECT FOR UPDATE 查詢。
 ROW SHARE,ROW EXCLUSIVE,SHARE,SHARE ROW EXCLUSIVE,EXCLUSIVE 和 ACCESS EXCLUSIVE 模式沖突?!?
ACCESS EXCLUSIVE MODE 
注意: 由語句 ALTER TABLE,DROP TABLE,VACUUM 執行時自動生效。這是最嚴格的約束鎖,它與所有其他的鎖模式沖突并且保護一個被鎖定的表不被任何其他并行的操作更改。
注意: 一個不合格的 LOCK TABLE 同樣要求這個鎖模式(例如,一條沒有顯式鎖模式選項的命令)。
輸出
LOCK TABLE 
成功鎖定后的返回. 
ERROR name: Table does not exist. 
如果 name 不存在,返回此信息. 

描述
Postgres 在可能的情況下盡可能使用最小約束的鎖模式。LOCK TABLE 在你需要時提供更有約束力的鎖?!?
RDBMS 鎖定使用下面術語: 

EXCLUSIVE 
排它鎖,防止其他(事務)鎖的產生. 
SHARE 
允許其他(事務)共享鎖.表面 EXCLUSIVE 鎖. 
ACCESS 
鎖定表結構. 
ROW 
鎖定獨立的行.
注意:如果沒有聲明 EXCLUSIVE 或 SHARE,假設為 EXCLUSIVE.鎖存在于事務周期內.
例如,一個應用在 READ COMMITED 隔離級別上運行事務,并且它需要保證在表中的數據在事務的運行過程中都存在。要實現這個你可以在查詢之前對表使用 SHARE 鎖模式進行鎖定。這樣將保護數據不被并行修改并且為任何更進一步的對表的讀操作提供實際狀態的數據,因為 SHARE 鎖模式與任何寫操作需要的 ROW EXCLUSIVE 模式沖突,并且你的 LOCK TABLE name IN SHARE MODE 語句將等到所有并行的寫操作提交或回卷后才執行。 
注意:當在 SERIALIZABLE 隔離級別運行事務,而且你需要讀取真實狀態的數據時,你必須在執行任何 DML 語句(這時事務定義什么樣的并行修改對它自己是可見的)之前運行一個 LOCK TABLE 語句。
除了上面的要求外,如果一個事務準備修改一個表中的數據,那么應該使用 SHARE ROW EXCLUSIVE 鎖模式以避免死鎖情況(當兩個并行的事務試圖以 SHARE 模式鎖住表然后試圖更改表中的數據時,兩個事務(隱含的)都需要 ROW EXCLUSIVE 鎖模式,而此模式與并行的 SHARE 鎖沖突)。 
繼續上面的死鎖(兩個事務彼此等待)問題,你應該遵循兩個通用的規則以避免死鎖條件: 

事務應該以相同的順序對相同的對象請求鎖?!?
例如,如果一個應用更新行 R1 然后更新行 R2(在同一的事務里),那么第二個應用如果稍后要更新行 R1 時不應該更新行 R2(在同一事務里)。相反,它應該與第一個應用以相同的順序更新行 R1 和 R2?!?

事務請求兩個互相沖突的鎖模式的前提:其中一個鎖模式是自沖突的(也就是說,一次只能被一個事務持有)。如果涉及多種鎖模式,那么事務應該總是最先請求最嚴格的鎖模式?!?

這個規則的例子在前面的關于用 SHARE ROW EXCLUSIVE 模式取代 SHARE 模式的討論中已經給出了。

注意: Postgres 不檢測死鎖,并將回卷至少一個等待的事務以解決死鎖。
注意
LOCK 是 Postgres 語言擴展. 
除了ACCESS SHARE/EXCLUSIVE 鎖模式外,所有其他 Postgres 鎖模式和 LOCK TABLE 語句都與那些在 Oracle 里面的兼容?!?
 

LOCK 只在事務內部使用. 

用法
演示在往一個外鍵表上插入時在有主鍵的表上使用 SHARE 的鎖: 
BEGIN WORK;
LOCK TABLE films IN SHARE MODE;
SELECT id FROM films 
    WHERE name = 'Star Wars: Episode I - The Phantom Menace';
-- 如果記錄沒有返回則回卷
INSERT INTO films_user_comments VALUES 
    (_id_, 'GREAT! I was waiting for it for so long!');
COMMIT WORK;
在執行刪除操作時對一個有主鍵的表進行 SHARE ROW EXCLUSIVE 鎖: 
BEGIN WORK;
LOCK TABLE films IN SHARE ROW EXCLUSIVE MODE;
DELETE FROM films_user_comments WHERE id IN
    (SELECT id FROM films WHERE rating < 5);
DELETE FROM films WHERE rating < 5;
COMMIT WORK;
兼容性
SQL92
在 SQL92 里沒有 LOCK TABLE ,可以使用 SET TRANSACTION 來聲明當前事務的級別.我們也支持這個,參閱 SET 獲取詳細信息。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产成人激情视频| 亚洲一区二区三区777| 伊人伊成久久人综合网站| 国产精品亚洲欧美导航| 国产成人精品视| 亚洲精品v欧美精品v日韩精品| 日韩av电影在线播放| 最近2019好看的中文字幕免费| 国产剧情日韩欧美| 亚洲第一区中文99精品| 日韩精品极品在线观看播放免费视频| 亚洲午夜av久久乱码| 亚洲欧美日韩精品久久亚洲区| 日本精品免费观看| 国产精品中文在线| 91精品视频免费看| 精品国产999| 欧美激情乱人伦一区| 亚洲视频欧洲视频| 久久99国产综合精品女同| 国产精品免费久久久久影院| 亚洲国产成人久久| 国产精品自在线| 欧美大片免费观看在线观看网站推荐| 日韩美女写真福利在线观看| 国产一区二区久久精品| 在线色欧美三级视频| 亚洲精品视频在线播放| 欧美国产日韩二区| 久久噜噜噜精品国产亚洲综合| 精品精品国产国产自在线| 欧美午夜激情小视频| 成人免费黄色网| 97精品国产aⅴ7777| 精品日本高清在线播放| 在线一区二区日韩| 777午夜精品福利在线观看| 久久久久国产精品一区| 91精品国产91久久久久久吃药| 国产成人精品久久二区二区| 最近的2019中文字幕免费一页| 永久555www成人免费| 午夜精品福利电影| 日本久久中文字幕| 欧美有码在线视频| 国产精品com| 欧美激情在线有限公司| 亚洲精选一区二区| 欧美精品精品精品精品免费| 成人444kkkk在线观看| 欧美性极品xxxx娇小| 亚洲男女自偷自拍图片另类| 欧美最猛性xxxxx免费| 欧美激情喷水视频| 在线中文字幕日韩| 亚洲免费电影在线观看| 国产69精品99久久久久久宅男| 国产91网红主播在线观看| 日韩中文字幕精品视频| 91av视频在线观看| 91精品国产高清久久久久久久久| 亚洲精品美女在线观看| 久久免费精品日本久久中文字幕| 国产午夜精品理论片a级探花| 成人午夜在线视频一区| 456亚洲影院| 狠狠干狠狠久久| 国产精品久久久av| 青青草原一区二区| 国产在线高清精品| 国产成人97精品免费看片| 国产69久久精品成人| 亚洲网站在线看| 国产成人精品视频| 国产主播精品在线| 91视频国产高清| 亚洲色图13p| www.久久色.com| 久久欧美在线电影| 国产小视频国产精品| 91手机视频在线观看| 日本中文字幕成人| 日本午夜人人精品| 亚洲娇小xxxx欧美娇小| 午夜精品一区二区三区在线| 欧美性xxxxxxxxx| 国产精品视频久久| 精品久久中文字幕| 国产精品自产拍在线观看中文| 亚洲国产一区自拍| 欧美激情免费观看| 亚洲国产精品中文| 欧美激情二区三区| 狠狠操狠狠色综合网| 欧美又大粗又爽又黄大片视频| 国内外成人免费激情在线视频网站| 97视频免费在线观看| 欧美日韩国产综合视频在线观看中文| 最近2019中文字幕mv免费看| 91最新国产视频| 九九视频这里只有精品| 欧美精品久久久久久久久| 色吧影院999| 国产99在线|中文| 国产91精品在线播放| 欧美丝袜第一区| 亚洲欧洲日产国产网站| 日韩av综合网| 亚洲精品91美女久久久久久久| 亚洲色图17p| 亚洲精品电影在线| 亚洲一级黄色片| 色爱av美腿丝袜综合粉嫩av| 欧美午夜女人视频在线| 亚洲美女av电影| 久久国产精品影视| 亚洲综合在线播放| 国产精品久久77777| 亚洲美女av黄| 俺也去精品视频在线观看| 久久久伊人日本| 日韩免费av在线| 国语自产精品视频在线看| 91免费精品国偷自产在线| 曰本色欧美视频在线| 成人免费视频在线观看超级碰| 久久久久久久激情视频| 精品国产一区二区三区久久狼5月| 乱亲女秽乱长久久久| 91精品国产乱码久久久久久蜜臀| 成人av色在线观看| 亚洲国产精久久久久久久| 欧美亚洲国产日韩2020| 久久久久久久久久国产| 大桥未久av一区二区三区| 日韩av免费在线| 欧美成人精品在线播放| 在线国产精品视频| 日本成人精品在线| 深夜福利一区二区| 国产精品久久久久久av| 欧美日韩一区二区三区在线免费观看| 久久影视电视剧免费网站清宫辞电视| 亚洲男人天堂2023| 国产亚洲欧美视频| 91久久久久久久久久久| 国产精品久久久久不卡| 97视频在线观看播放| 亚洲成av人片在线观看香蕉| 亚洲自拍偷拍一区| 成人在线免费观看视视频| 久久免费在线观看| 91精品国产自产在线老师啪| 国产精品久久久久久久久久ktv| 亚洲第一区在线观看| 欧美激情视频播放| 欧美日韩一区二区免费在线观看| 欧美伦理91i| 国产精品一区二区三区久久久| 欧美另类第一页| 久久人人爽人人爽爽久久| 中文字幕日韩免费视频| 欧美精品成人91久久久久久久| 国产欧美一区二区三区在线|