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