我一直在研究一个数据库,该数据库存储了有关这些旅行的旅行和预订的数据。我还有一个表 ReservationLog,它存储了给定保留状态的变化,以及它们发生的时间。我被告知要创建一个触发器,在添加新预订后工作,这也会在 ReservationLog 表中创建一个新条目。但是,在尝试编译代码时出现错误:
PLS-00049 - incorrect binding variable "NEW.LOG_DATE"
表 ReservationLog 如下所示:
CREATE TABLE RESERVATIONLOG
(
ID INT GENERATED ALWAYS AS IDENTITY NOT NULL,
RESERVATION_ID INT,
LOG_DATE DATE,
STATUS CHAR(1),
CONSTRAINT RL_PK PRIMARY KEY
(
ID
)
ENABLE
);
RESERVATION_ID is a foreign key
触发函数的代码如下所示:
CREATE OR REPLACE TRIGGER AddReservationTrigger
AFTER INSERT ON
RESERVATION
REFERENCING OLD AS OLD NEW AS NEW
FOR EACH ROW
DECLARE V_TODAY DATE;
BEGIN
SELECT SYSDATE INTO V_TODAY FROM DUAL;
INSERT INTO RESERVATIONLOG
(
RESERVATION_ID,
LOG_DATE,
STATUS
)
VALUES
(
:new.RESERVATION_ID,
:new.LOG_DATE,
:new.STATUS
);
end;
/
不知道该怎么做,我试图给它赋值::new.LOG_DATE :=SYSDATE但它不起作用。我觉得这很愚蠢,但无法弄清楚这里有什么问题。