Обновить столбец в другой таблице с помощью триггера - PullRequest
1 голос
/ 06 июня 2019

Я хотел бы обновить столбец в другой таблице с кодом ниже, но я получаю сообщение об ошибке, что триггер недействителен.Что с ним не так?

CREATE OR REPLACE TRIGGER UPDATE_PAYMENT
  AFTER INSERT OR UPDATE ON PAYMENT
  for each row

begin
  update PAYMENTTYPE PT
  set PT.PAYMENTTYPECOLUMN = PAYMENT.PAYMENTTYPECOLUMN
  where PT.ID = :NEW.ID and PT.ID2 = :NEW.ID2;

end UPDATE_PAYMENT;

1 Ответ

2 голосов
/ 06 июня 2019

В вашем триггере вы дважды ссылаетесь на PAYMENT столбцы на :NEW., и это правильно, тогда как в третий раз вы используете PAYMENT., что неправильно. Триггер должен быть:

CREATE OR REPLACE TRIGGER UPDATE_PAYMENT
  AFTER INSERT OR UPDATE ON PAYMENT
  for each row
begin
  update PAYMENTTYPE PT
  set PT.PAYMENTTYPECOLUMN = :NEW.PAYMENTTYPECOLUMN   -- <------ HERE
  where PT.ID = :NEW.ID and PT.ID2 = :NEW.ID2;
end UPDATE_PAYMENT;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...