oracle表未锁定

时间:2012-07-02 00:11:40

标签: oracle

我正在学习Oracle Lock。

在一个会话中

lock table countries in ROW Exclusive mode nowait;

在另一个会话中,我更新了县表。

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

我期望会话将挂起。你知道为什么吗?

我检查EM,我确实看到了锁。

1 个答案:

答案 0 :(得分:7)

ROW EXCLUSIVE

实际上并没有完全锁定表格。

ROW EXCLUSIVEROW SHARE允许并发访问,但会阻止其他人锁定整个表以进行独占访问。 Exclusive还禁止其他操作在SHARE模式下锁定表。

如果你想锁定除了Read之外的任何东西;你需要省略ROW所以

LOCK TABLE countries 
    IN EXCLUSIVE MODE 
    NOWAIT;

此处有更多示例:http://docs.oracle.com/cd/B14117_01/server.101/b10759/statements_9015.htm