====== 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(): 1. Увеличивает текущее значение определенного генератора на step. 2. Возвращает текущее значение определенного генератора. GEN_ID() полезно использовать для автоматического создания уникальных ключей, чтобы вставлять в столбцы [[constraint|UNIQUE]] или [[constraint|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