首页 文章

创建触发器以重新排序列并修改语句级别

提问于
浏览
0

我需要更改Product表以获得varchar2(3)重新排序列,并修改注释中的语句级别触发器,以便将产品重新订购字段设置为“是”,如果现有数量小于产品最小数量的两倍或者如果现有数量小于10.否则,该值应为“否” . 在插入或更新p_min或p_qoh后触发触发器 . 通过预先检查数据进行调试,进行更改,然后进行检查 .

对此,我有

CREATE or REPLACE TRIGGER 
  TRG_Product_Reorder
  AFTER INSERT OR UPDATE of P_min, P_qoh ON lab9_Product
BEGIN
  UPDATE lab9_Product SET REORDER = 'yes'
   WHERE P_qoh < P_min*2 or p_qoh < 10;

  UPDATE lab9_Product SET REORDER = 'no'
   WHERE P_qoh >= p_min*2;
END;
/

我收到错误:

SQL statement ignored
"REORDER": invalid identifier

1 回答

  • 1

    我想你可能想要一个before触发器而不是after触发器 . 它会是这样的:

    CREATE or REPLACE TRIGGER 
    TRG_Product_Reorder
    BEFORE INSERT OR UPDATE of P_min, P_qoh ON 
    lab9_Product
    BEGIN
        IF :OLD.P_qoh < :OLD.P_min*2 AND :OLD.p_qoh < 10 THEN
           :NEW.REORDER := 'yes';
        ELSE  :NEW.REORDER := 'no';
        END IF;
    END;
    

相关问题