【发布时间】:2016-04-28 19:37:32
【问题描述】:
我的触发器需要帮助。我正在 Oracle 中触发删除第一个表中的行,外键引用第二个表,其中删除的行的主键值类似于第一个表中的外键。
我有这些表:
CREATE TABLE Room (
id_room NUMBER(5) NOT NULL,
.
.
price VARCHAR(10) NOT NULL,
PRIMARY KEY(id_mistnosti),
);
CREATE TABLE item1 (
id_room NUMBER(5) NOT NULL,
.
.
FOREIGN KEY(id_room) REFERENCES Room
);
CREATE TABLE item2(
id_room NUMBER(5) NOT NULL,
.
.
FOREIGN KEY(id_room ) REFERENCES Room
);
我有桌子房间,里面有 2 个项目,所以当我删除他们的房间时,我需要删除这 2 个项目。
现在我尝试只删除一项:
CREATE OR REPLACE TRIGGER removeRoomsItems
BEFORE DELETE ON Room
FOR EACH ROW
WHEN (:Room.id_mistnosti = :item1.id_mistnosti)
BEGIN
DELETE FROM item1;
END;
/
我的 SQLdeveloper 写道,错误出现在子句 WHEN 中。 我需要一些关于删除这两个项目的指南。
【问题讨论】: