DeepEdit!

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

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

Создание замещающих триггеров

В отличие от триггеров DML, срабатывающих как дополнение к опера­ции INSERT, UPDATE или DELETE (или до, или после них), замещаю­щие триггеры активизируются вместо операций DML. К тому же замещающие триггеры создаются только для представлений, в то время как триггеры DML — для таблиц. Замещающие триггеры используются в двух случаях:
       Для того чтобы сделать представление модифицируемым, если иначе это сделать нельзя.
       Для модификации столбцов в столбце вложенной таблицы пред­ставления.
В этом разделе рассматривается первый случай. О вложенных табли­цах рассказывается в главе 8.
Модифицируемые и немодифицируемые представления
Модифицируемым (modifiable) называется такое представление, по отно-
шению к которому можно выполнить оператор DML. Как правило, пред-
ставление является        если оно не содержит:
       Операций над множествами (UNION, UNION ALL, MINUS) в Функций агрегирования (SUM, AVG и
Конструкций GROUP BY, CONNECTBY и START WITH
Операции DISTINCT
       Соединений
Существуют, однако, представления, которые содержат соединения и при этом являются модифицируемыми. Обычно представление с соедине­нием может быть модифицировано, если операция DML, выполняемая над ним, одновременно модифицирует только одну базовую таблицу и если оператор DML отвечает условиям, приведенным в таблице (см. также "Oracle Concepts"). Если представление является немодифицируемым, то для него можно создать замещающий триггер, выполняющий нужные дей­ствия и тем самым разрешающий его модификацию. Замещающий триггер можно создать и для модифицируемого представления, если требуется до­полнительная обработка информации.

В таблице 11.3 фигурируют таблицы, сохраняющие ключи. Таблица сохраняет ключи в том случае, если после соединения с другой таблицей ключи исходной таблицы становятся ключами результирующего соедине­ния (см. руководство "Application Developer'sGuide - Fundamentals").
 









jAntivirus