【发布时间】:2018-10-02 03:52:40
【问题描述】:
以下是我的触发器,我很难实现。它会创建触发器,但在我更改价格后出现错误。以下触发器是当 DAYCARE 表的任何行发生价格变化(更新)时,向 DAYCARE_PRICE 表添加一行。
CREATE OR REPLACE TRIGGER daycare_price_history_trg
BEFORE UPDATE ON DAYCARE
FOR EACH ROW
BEGIN
IF :NEW.price != :OLD.price THEN
INSERT INTO DAYCARE_PRICE(daycare_id, old_price, new_price, date_of_change)
SELECT daycare_id, :NEW.price, :OLD.price, SYSDATE
FROM DAYCARE;
END IF;
END;
【问题讨论】:
-
简短回答:您不能从正在更新的 DAYCARE 中的同一行中进行选择。请改用 NEW/OLD。
-
请检查我的回答,如果对您有帮助,请接受。请阅读:stackoverflow.com/help/someone-answers 了解为什么它很重要。