Доступные версии документации

Блокирование таблицы

Функция

Определение оператора блокирования таблицы.

Спецификация
     
<блокирование таблицы>::=
<режим доступа>::=
{ SHARE | EXCLUSIVE }
Синтаксические правила
  1. <Имя таблицы> должно ссылаться на базовую таблицу. Если <режим доступа> не указан, по умолчанию принимается EXCLUSIVE.

  2. Если опция WAIT (NOWAIT) не указана, по умолчанию принимается WAIT.

    lock table auto in share mode wait;
Общие правила
  1. <Режим доступа> SHARE позволяет другим пользователям БД только читать блокированную таблицу.

  2. <Режим доступа> EXCLUSIVE/SHARE блокирует доступ к таблице не только других пользователей БД, но и доступ того же пользователя по его другим соединениям с БД, т.к. соединения, открытые разными процессами или нитями от имени одного и того же пользователя (например, c помощью команды OPEN интерфейса нижнего уровня) конкурируют за доступ к БД как разные пользователи. Если несколько соединений открыты одной нитью, такой конкуренции между ними не происходит.

  3. Опция WAIT (NOWAIT) задает реакцию пользователя на невозможность блокирования таблицы в данный момент: WAIT – ждать момента, когда таблицу можно будет блокировать, NOWAIT – отказаться от блокирования таблицы и вернуть соответствующий код завершения.

  4. Блокировка таблицы отменяется SQL-операторами:

    • в режиме AUTOCOMMIT: UNLOCK, COMMIT;

    • в режиме PESSIMISTIC: COMMIT, ROLLBACK.

Заметили ошибку?
Выделите текст и нажмите Ctrl + Enter