GEN_ID()
Версии сервера
| 0.9 | 1.0 | 1.5.3 | 1.5.4 | 1.5.5 | 2.0 | 2.0.3 | 2.0.4 | 2.1 | 2.5 | 3.0 |
|---|---|---|---|---|---|---|---|---|---|---|
| Да | Да | Да | Да | Да | Да | Да | Да | Да | Да | ? |
Формат
GEN_ID (generator, step);
| Аргумент | Описание |
|---|---|
| generator | Имя существующего генератора. |
| step | Целое или выражение, определяющее увеличение или уменьшение текущего значения генератора. Значения могут быть в диапазоне от -231 до 231- 1. |
Описание
Функция GEN_ID():
- Увеличивает текущее значение определенного генератора на step.
- Возвращает текущее значение определенного генератора.
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
Обсуждение