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

时间:2015-11-09 00:17:40

标签: sql oracle plsql triggers compiler-errors

我需要更改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 个答案:

答案 0 :(得分:1)

我认为您可能需要之前的触发器,而不是之后的触发器。它会是这样的:

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;