GEN_ID()

Версии сервера

0.91.01.5.31.5.41.5.52.02.0.32.0.42.12.53.0
ДаДаДаДаДаДаДаДаДаДа?

Формат

GEN_ID (generator, step);
АргументОписание
generatorИмя существующего генератора.
stepЦелое или выражение, определяющее увеличение или уменьшение текущего значения генератора. Значения могут быть в диапазоне от -231 до 231- 1.

Описание

Функция GEN_ID():

  1. Увеличивает текущее значение определенного генератора на step.
  2. Возвращает текущее значение определенного генератора.

GEN_ID() полезно использовать для автоматического создания уникальных ключей, чтобы вставлять в столбцы UNIQUE или PRIMARY KEY. Чтобы вставить сгенерированное число в столбец, напишите триггер, процедуру или инструкцию SQL, которые вызывают GEN_ID().

⚠️ Генератор создан инструкцией CREATE GENERATOR. По умолчанию, значение генератора устанавливается в нуль. Оно может быть установлено в другое значение с помощью SET GENERATOR.

Пример

Следующее определение триггера включает обращение к GEN_ID():

SET TERM !! ;

CREATE TRIGGER CREATE_EMPNO FOR EMPLOYEES
ACTIVE BEFORE INSERT POSITION 0 AS 
BEGIN
  NEW.EMPNO = GEN_ID (EMPNO_GEN, 1);
END!!

SET TERM ; !!

В первый раз, при выполнении триггера, NEW.EMPNO устанавливается к 1. В следующий раз, оно будет установлено к 2, и т.д.

См. также

CREATE GENERATOR, DROP GENERATOR, SET GENERATOR, NEXT VALUE FOR

Источник

langref.pdf

Обсуждение