我怎样才能修复我的触发器以允许它编译?

How can I fix my trigger to allow it to compile?

我有两个 tables :

  1. Boats (BUILDERNAME, MODEL, LENGTH_BY_FEET, BASE_PRICE)
  2. Pricechanges (MODEL, CHANGEDATE, OLDPRICE, NEWPRICE).

我需要创建一个触发器,当 table BoatsBase_Price 更新时,它会向 Pricechanges table 添加一行。

这是我的

CREATE OR REPLACE TRIGGER PRICECHANGE  
  AFTER UPDATE OF BASE_PRICE ON BOATS   
  FOR EACH ROW
BEGIN
   IF UPDATING THEN
    INSERT INTO pricechanges (MODEL, CHANGEDATE, OLDPRICE, NEWPRICE)
    VALUES (model, SYSDATE, :old.base_price, :new.base_price)
END PRICECHANGE; 

遇到一些麻烦。 任何帮助将不胜感激。

你少了一个分号和一个 END IF:

CREATE OR REPLACE TRIGGER PRICECHANGE  
  AFTER UPDATE OF BASE_PRICE ON BOATS   
  FOR EACH ROW
BEGIN
   IF UPDATING THEN
     INSERT INTO pricechanges (MODEL, CHANGEDATE, OLDPRICE, NEWPRICE)
     VALUES (model, SYSDATE, :old.base_price, :new.base_price);
   END IF;
END PRICECHANGE;

此外,因为这是一个 AFTER UPDATE 触发器,所以 IF UPDATING 的测试是不必要的,但它不会造成任何伤害。

祝你好运。