DeepEdit!

Программирование баз данных на Oracle, техническая документация, литература, статьи и публикации

  • Увеличить размер шрифта
  • Размер шрифта по умолчанию
  • Уменьшить размер шрифта

Типы триггеров

Триггеры похожи на процедуры и функции тем, что также являются именованными блоками PL/SQL и имеют раздел объявлений, выполняемый раздел и раздел обработки исключительных ситуаций. Подобно модулям, триггеры хранятся как автономные объекты в базе данных и не могут храниться локально в блоке или модуле. Процедура вызывается явным образом из другого блока, при вызове ей могут передаваться различные аргументы. Триггер же выполняется неявно всякий раз, когда происходит запускающее его событие, и триггер не имеет аргументов. Акт выполнения триггера называется его        (firing). Событием, запускающим триггер, является операция DML (INSERT, UPDATE или DELETE), выполняемая над таблицей или представлением базы данных. В эти функции расширены: триггер может срабатывать на системное событие, например на запуск или останов базы данных, а также на определенные виды операций DDL. Триггеры можно использовать:
Для реализации сложных ограничений целостности данных, кото­рые невозможно реализовать через декларативные ограничения, устанавливаемые при создании таблицы.
Для контроля за информацией, хранимой в таблице, посредством регистрации вносимых изменений и пользователей, производящих эти изменения.
Для автоматического оповещения других программ о том, что необ­ходимо делать в случае изменения информации, содержащейся в таблице.
Для публикации информации о различных событиях в среде "публи­кация- подписка".
Триггеры делятся на три основных типа: триггеры DML, триггеры за­мещения и системные триггеры.

Внимание
В Oracle8 и выше можно создавать триггеры на PL/SQL или на других языках программирования, если они вызываются как внешние подпрограммы (см. ниже раздел "Тело триггера" и главу 12).
 


взлом skype







jAntivirus