2012-07-02 45 views
2

我正在學習Oracle鎖。oracle表未鎖定

在一個會話

lock table countries in ROW Exclusive mode nowait; 

在另一個會議上,我更新各縣表。

SQL> update countries set country_name = 'ddd'; 
25 rows updated. 

我期望的是會話會掛起。你知道爲什麼嗎 ?

我檢查EM,我確實看到了鎖。

回答

7

ROW EXCLUSIVE

實際上並沒有完全鎖定表格。

ROW EXCLUSIVEROW SHARE允許併發訪問但阻止其他人鎖定整個表以獨佔訪問。 Exclusive還禁止其他操作在SHARE模式下鎖定表。

如果你想鎖定表中的任何東西,但讀取;你需要在這裏省略行,以便

LOCK TABLE countries 
    IN EXCLUSIVE MODE 
    NOWAIT; 

還有更多的例子:http://docs.oracle.com/cd/B14117_01/server.101/b10759/statements_9015.htm

+0

我會爲Downvoter感謝解釋爲什麼! –