私はオラクルロックを学んでいます。
1回のセッションで
lock table countries in ROW Exclusive mode nowait;
別のセッションで、counties テーブルを更新します。
SQL> update countries set country_name = 'ddd';
25 rows updated.
私が期待したのは、セッションがハングすることです。なぜなのかご存知ですか ?
EM をチェックすると、ロックが表示されます。
私はオラクルロックを学んでいます。
1回のセッションで
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