В начало

Триггер первичного ключа

            Есть некая локальная база «sklad».

            Необходимо создать триггер для таблицы «Nakladnaya», который будет заполнять поле первичного ключа.

            Для начала создадим таблицу «Nakladnaya», для этого запустим утилиту «Interactive SQL», вставим запрос на создание таблицы и выполним его.

CREATE TABLE Nakladnaya (

      ID INTEGER Not Null PRIMARY KEY,

      Posiciya INTEGER,

      Nomenklatura VARCHAR(20),

      Kolichestvo INTEGER Not Null,

      Cena NUMERIC(15,2) Not Null,

      Summa NUMERIC(15,2) Not Null);

            Затем, опять же запросом, создадим генератор «GEN_Nakladnaya», который будет генерировать числа и установим его значение в «0».

CREATE GENERATOR GEN_Nakladnaya;

SET GENERATOR GEN_Nakladnaya TO 1;

            Ну и теперь можно приступить к созданию триггера «Auto_ID».

SET TERM !;

CREATE TRIGGER Auto_ID FOR Nakladnaya

ACTIVE BEFORE INSERT POSITION 0

   AS

   BEGIN

   IF ((NEW.ID IS NULL) OR (NEW.ID = 0)) THEN

       NEW.ID = GEN_ID(GEN_Nakladnaya, 1);

   END!

SET TERM ;!

            Здесь «NEW» – контекстная переменная, а «GEN_ID» функция, увеличивающая значение генератора на определенный шаг, в данном случае на «1».