2

我正在学习 Oracle 锁。

在一个会话中

lock table countries in ROW Exclusive mode nowait;

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

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

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

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

4

1 回答 1

7

排独家

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

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

如果您想锁定表格,而不是读取;你需要省略 ROW 所以

LOCK TABLE countries 
    IN EXCLUSIVE MODE 
    NOWAIT;

这里还有更多示例:http: //docs.oracle.com/cd/B14117_01/server.101/b10759/statements_9015.htm

于 2012-07-02T00:21:36.620 回答