簡體   English   中英

使用觸發器更新另一個表中的列

[英]Update column in another table with trigger

我想用下面的代碼更新另一個表中的列,但是我收到一個觸發器無效的錯誤消息。 它出什么問題了?

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;

在觸發器中,您通過:NEW.兩次引用“ 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;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM