我正在学习Oracle Lock。
在一个会话中
lock table countries in ROW Exclusive mode nowait;
在另一个会话中,我更新了县表。
SQL> update countries set country_name = 'ddd';
25 rows updated.
我期望会话将挂起。你知道为什么吗?
我检查EM,我确实看到了锁。
答案 0 :(得分:7)
ROW EXCLUSIVE
实际上并没有完全锁定表格。
ROW EXCLUSIVE
和ROW 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