Создать триггер для вставки после обновления таблицы - PullRequest
0 голосов
/ 01 июля 2018

Создать триггер с именем trigger_contact_af_update, который срабатывает при каждом обновлении таблицы contact. Этот триггер вставит имя_организации и действие в таблицу contact_log_history после обновления контактных данных. Имя действия в соответствующей таблице журнала contact_log_history равно 'After_Update_Contact'.

Подсказки:

  • Имя триггера: trigger_contact_af_update
  • Имя таблицы: contact_log_history
  • Имена полей: org_name, action
  • Действие: 'After_Update_Contact'.

Структура таблицы contact_log_history выглядит следующим образом:

org_name Varchar(30)
action Varchar(30)

Я написал приведенный ниже триггер, но ошибки или триггера не создано.

CREATE OR REPLACE TRIGGER trigger_contact_af_update AFTER UPDATE 
    ON contact_log_history FOR EACH ROW 
DECLARE 
    org_name VARCHAR(30);
    action VARCHAR(30);
BEGIN 
    if (:new.action == 'After_Update_Contact') 
    then 
        INSERT INTO contact_log_history (org_name, action) 
        values (:new.org_name, :new:action);
    end if ;
END;

1 Ответ

0 голосов
/ 02 июля 2018

Вы должны использовать

SHOW ERRORS 

или

select * from user_errors;

для проверки ошибок во время компиляции для процедур / функций / триггеров.

Вот рабочий триггер после устранения проблем и избежания переменных.

CREATE  OR replace TRIGGER contact_af_update AFTER 
UPDATE 
ON contact FOR EACH ROW 
DECLARE 
BEGIN 
  IF (:new.action = 'After_Update_Contact') THEN 
    INSERT INTO contact_log_history 
                ( 
                            org_name, 
                            action 
                ) 
                VALUES 
                ( 
                            :new.org_name, 
                            :new.action 
                ); 

  END IF ; 
END;
/

Демо

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