Триггер это процедура обработки события связанного с таблицей, которая вызывается автоматически. Ниже приведен список стандартных событий:
· удаление записи из таблицы;
· вставка записи в таблицу;
· изменение записи в таблице.
Дополнительно можно указать до или после производить обработку события. Внутри триггера доступны две особых переменных определяющих значение старой и новой записи. Для изменения доступна только вторая переменная, и то, если обработка происходит до наступления события. Для примера создадим триггер на вставку для следующей таблицы:
-- создание таблицыcreate table tblname (id integer, str varchar(45), dt date, constraint pk_tblname primary key (id)); Назначение нашего тригера в подмене null значений поля dt текущей датой перед вставкой новой записи.
Oracle
-- создаем триггерcreate or replace trigger tgins_tblname before insert on tblname for each rowdeclare-- место для локальных переменныхr integer; begin if :old.dt is null then :new.dt := current_date;end if; end tgins_tblname; -- проверкаinsert into tblname values(1,'text info',null);commit;select * from tblname; -- отключить тригерALTER TRIGER test_trig DISABLE; -- включить тригерALTER TRIGER test_trig ENABLE; -- удаление тригераDROP TRIGER test_trig;