Помощь в отношении триггеров - PullRequest
3 голосов
/ 13 июня 2011

У меня есть таблица (Таблица A). В этой таблице я создаю триггер, который вставит строку в другую таблицу (TableB) для вставки, обновления и удаления действий, выполненных в TableA. Мое намерение состоит в том, чтобы отслеживать изменения в Таблице A.

У меня есть один триггер для этого. (создайте триггер trig_name перед вставкой, обновлением или удалением в TableA ... - Вид).

Теперь мне нужно, какова фактическая операция, выполняемая над таблицей A. Когда триггер вставляет строку в TableB, я хочу, чтобы фактическая операция, выполняемая над TableA, также была вставлена ​​в столбец.

Есть ли какие-либо возможности зафиксировать, какая операция выполняется в TableA с одним триггером, или мне нужно создать отдельный триггер для каждой из операций оператора DML?

ТИА.

Ответы [ 2 ]

4 голосов
/ 13 июня 2011

Цитирование документы :

Обнаружение операции DML, которая запустила триггер

Если более чем один тип операции DML может запустить триггер (дляНапример, при INSERT ИЛИ УДАЛЕНИИ ИЛИ ОБНОВЛЕНИИ emp) тело триггера может использовать условные предикаты INSERTING, DELETING и UPDATING, чтобы проверить, какой тип оператора запускает триггер.Вы можете выполнять блоки кода в зависимости от типа операции DML, которая сработала триггер:

IF INSERTING THEN ... END IF;
IF UPDATING THEN ... END IF;
0 голосов
/ 13 июня 2011

Вы можете использовать следующие предикаты в PL / SQL:

IF INSERTING THEN ... END IF;
IF UPDATING THEN ... END IF;
IF DELETING THEN ... END IF;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...