Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вопросы-ответы (БД экзамен).docx
Скачиваний:
297
Добавлен:
25.05.2018
Размер:
2.35 Mб
Скачать

44. Pl/sql. Триггеры.

Triggers Триггеры – специальные хранимые процедуры, вызываемые автоматически при изменении данных в таблице (при добавлении, изменении или удалении данных из таблицы).

Например, можно писать триггеры, срабатывающие при выполнении над таблицей операций INSERT, UPDATE или DELETE; при выдаче команд DDL; при входе пользователя в систему или его выходе из системы; при запуске или останове базы данных; при возникновении ошибок.

Между триггерами и процедурами PL/SQL есть три различия:

• Триггеры нельзя вызывать из кода программы. Oracle вызывает их автоматически в ответ на определенное событие.

• Триггеры не имеют списка параметров.

• Спецификация триггера немного отличается от спецификации процедуры.

Синтаксис команды для создания триггера, следующий:

--- CREATE [OR REPLACE] TRIGGER имя_триггера ---------------------

--- BEFORE | AFTER активизирующее_событие ON ссылка_на_таблицу ---

--- FOR EACH ROW [WHEN условие_срабатывания] ---------------------

--- тело_триггера ------------------------------------------------

Где:

имя_триггера – собственно имя вашего триггера.

активизирующее_событие – указывает момент активации триггера BEFORE до срабатывания оператора DML, AFTER после срабатывания оператора DML.

ссылка_на_таблицу – собственно таблица, для которой создан триггер.

FOR EACH ROW - если указано активируется от воздействия на строку если нет, то после любого оператора DML.

условие_срабатывания – если TRUE триггер срабатывает, если FALSE нет.

тело_триггера – собственно тело триггера.