Блокирование таблицы
Функция
Определение оператора блокирования таблицы.
Спецификация
::=
::=
Синтаксические правила
-
<Имя таблицы>
должно ссылаться на базовую таблицу. Если<режим доступа>
не указан, по умолчанию принимаетсяEXCLUSIVE
. -
Если опция
WAIT
(NOWAIT
) не указана, по умолчанию принимаетсяWAIT
.lock table auto in share mode wait;
Общие правила
-
<Режим доступа> SHARE
позволяет другим пользователям БД только читать блокированную таблицу. -
<Режим доступа> EXCLUSIVE
/SHARE
блокирует доступ к таблице не только других пользователей БД, но и доступ того же пользователя по его другим соединениям с БД, т.к. соединения, открытые разными процессами или нитями от имени одного и того же пользователя (например, c помощью командыOPEN
интерфейса нижнего уровня) конкурируют за доступ к БД как разные пользователи. Если несколько соединений открыты одной нитью, такой конкуренции между ними не происходит. -
Опция
WAIT
(NOWAIT
) задает реакцию пользователя на невозможность блокирования таблицы в данный момент:WAIT
– ждать момента, когда таблицу можно будет блокировать,NOWAIT
– отказаться от блокирования таблицы и вернуть соответствующий код завершения. -
Блокировка таблицы отменяется SQL-операторами:
-
в режиме
AUTOCOMMIT
:UNLOCK
,COMMIT
; -
в режиме
PESSIMISTIC
:COMMIT
,ROLLBACK
.
-