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