Блокирование таблицы
Функция
Определение оператора блокирования таблицы.
Спецификация
::=
::=
Синтаксические правила
-
< Имя таблицы >
должно ссылаться на базовую таблицу. Если< режим доступа >
не указан, по умолчанию принимается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
.
-