Инструменты пользователя

Инструменты сайта


gen_id

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Both sides previous revision Предыдущая версия
Следущая версия
Предыдущая версия
gen_id [2010/12/06 17:46]
94.25.175.248
gen_id [2011/08/26 10:50] (текущий)
Строка 1: Строка 1:
 +====== 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 ^
 +|  Да  |  Да  |  Да  |  Да  |  Да  |  Да  |  Да  |  Да  |  Да  |  Да  |  ?  |
 +
 +===== Формат =====
 +<​code>​
 +GEN_ID (generator, step);
 +</​code>​
 +
 +^ Аргумент ^ Описание ^
 +|generator | Имя существующего генератора. |
 +|step  |Целое или выражение,​ определяющее увеличение или уменьшение текущего значения генератора. Значения могут быть в диапазоне от -2<​sup>​31</​sup>​ до 2<​sup>​31</​sup>​- 1.|
 +
 +===== Описание =====
 +Функция GEN_ID():
 +
 +1. Увеличивает текущее значение определенного генератора на step.
 +2. Возвращает текущее значение определенного генератора. ​
 +
 +GEN_ID() полезно использовать для автоматического создания уникальных ключей,​ чтобы вставлять в столбцы [[constraint|UNIQUE]] или [[constraint|PRIMARY KEY]]. Чтобы вставить сгенерированное число в столбец,​ напишите триггер,​ процедуру или инструкцию SQL, которые вызывают GEN_ID().
 +
 +:!: Генератор создан инструкцией [[CREATE GENERATOR]]. По умолчанию,​ значение генератора устанавливается в нуль. Оно может быть установлено в другое значение с помощью [[SET GENERATOR]].
 +
 +===== Пример =====
 +Следующее определение триггера включает обращение к GEN_ID():
 +<​code>​
 +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 ; !!
 +</​code>​
 +В первый раз, при выполнении триггера,​ NEW.EMPNO устанавливается к 1. В следующий раз, оно будет установлено к 2, и т.д.
 +
 +
 +===== См. также =====
 +[[CREATE GENERATOR]], ​ [[DROP GENERATOR]], ​ [[SET GENERATOR]], ​ [[NEXT VALUE FOR]]
 +
 +===== Источник =====
 +langref.pdf
gen_id.txt · Последние изменения: 2011/08/26 10:50 (внешнее изменение)