我正在学习 Oracle 锁。
在一个会话中
lock table countries in ROW Exclusive mode nowait;
在另一个会话中,我更新了counties 表。
SQL> update countries set country_name = 'ddd';
25 rows updated.
我所期望的是会话将挂起。你知道为什么吗 ?
我检查了 EM,我确实看到了锁。
我正在学习 Oracle 锁。
在一个会话中
lock table countries in ROW Exclusive mode nowait;
在另一个会话中,我更新了counties 表。
SQL> update countries set country_name = 'ddd';
25 rows updated.
我所期望的是会话将挂起。你知道为什么吗 ?
我检查了 EM,我确实看到了锁。
排独家
实际上并没有完全锁定表。
ROW EXCLUSIVE
并ROW SHARE
允许并发访问,但防止其他人锁定整个表以进行独占访问。Exclusive 还禁止其他操作在 SHARE 模式下锁定表。
如果您想锁定表格,而不是读取;你需要省略 ROW 所以
LOCK TABLE countries
IN EXCLUSIVE MODE
NOWAIT;
这里还有更多示例:http: //docs.oracle.com/cd/B14117_01/server.101/b10759/statements_9015.htm