Тип выборки

Функция

Определение допустимых режимов доступа к выбираемым данным.

Спецификация
     
< тип выборки >::=
FOR UPDATE [OF имя столбца [, …]] | FOR BROWSE
Синтаксические правила
  1. Модификатор FOR UPDATE применяется к < запросу выборки > только c однопеременным < табличным выражением > или обновляемым представлением.

  2. Модификатор FOR BROWSE применяется к < запросу выборки > с одно и многопеременным < табличным выражением >.

Общие правила
  1. При задании модификатора FOR BROWSE текущие строки таблиц, использованные для получения данных ответа, в момент их считывания для ответа блокируются от изменения параллельно работающими пользователями БД (каналами БД). Такие строки таблиц можно только читать, т.е. для них задается разделяемая блокировка. На каждую строку таблицы может быть наложено несколько разделяемых блокировок. Блокировка действует только на текущую строку ответа, т.е. если приложение обрабатывает некоторую текущую запись, то эта запись не может быть изменена. После того, как приложение перешло на другую запись, эта запись блокируется, а с предыдущей блокировка снимается.

  2. При задании модификатора FOR UPDATE все строки таблицы, вошедшие в выборку, сразу же блокируются от изменения параллельно работающими пользователями БД (каналами БД). Такие строки можно читать (для них задается внутренняя блокировка). На каждую строку может быть наложена только одна блокировка FOR UPDATE. Если число строк в выборке превышает 1000, то в таком же режиме блокируется вся таблица. Блокировка действует до обработки запроса COMMIT/ROLLBACK.

  3. При задании модификатора FOR UPDATE для необновляемых запросов он игнорируется, никакие блокировки не накладываются. На консоль ядра СУБД ЛИНТЕР выдается сообщение о неверном модификаторе запроса.