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