Генераторы

  • Часть 1
  • | 2
  • | 3
  • | 4

При этом целое_значение – это значение типа BIGINT, которое должно лежать в пределах от –263 до 263-1.

Например, генератор с именем Executor_ID, который может использоваться для автоматической генерации очередного значения первичного ключа таблицы Executorучебной БД, можно определить с помощью следующего запроса: CREATE SEQUENCE Executor_ID;.

Установка начального значения равным 5 для созданного генератора Executor_ID может быть выполнена следующим образом:

ALTER SEQUENCE Executor_ID RESTART WITH 5;.

Создание генератора и установка начального значения могут быть произведены при выполнении описанных выше запросов в SQL-редакторе утилиты IBExpert или при использовании этих запросов в тексте SQL сценария.

После создания генератора получение его очередного (следующего) значения производится вызовом функции GEN_ID или функции NEXT VALUE FOR. Функция GEN_ID имеет следующий формат:

GEN_ID (имя_генератора, шаг),

где шагпредставляет собой целое значение (если оно равно нулю, то будет получено текущее значение генератора).

Формат функции NEXT VALUE FOR имеет следующий вид:

NEXT VALUE FOR имя_генератора;.

Значение шага при использовании данной функции всегда равно 1. Если нет необходимости использовать приращение шага, отличное от 1, рекомендуется пользоваться функцией NEXT VALUE FOR, так как именно она соответствует наиболее позднему стандарту SQL. Приращение значения генератора, не равное 1, может быть задано только через функцию GEN_ID.

Функции вызова генератора могут использоваться в следующих случаях:

-       для   получения   очередного   значения   генератора   и   присвоения   его локальной переменной в теле триггера или хранимой процедуры;

-       в списке возвращаемых элементов запроса SELECT;

предыдущаяследующая