表正在更改,触发器/函数可能看不到它/ORA-04088:触发器执行期间出错



以下是我的触发器,我很难实现。它创建了触发器,但在我更改价格后出现错误。以下触发器是在表 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;

使用VALUES子句,而不是从表(触发器所有者(中选择插入。

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
) VALUES (
:new.daycare_id,
:old.price,
:new.price,
SYSDATE
);
END IF;
END;
/

最新更新