私のトリガーで助けが必要です。私は最初のテーブルの外部キーのような値を持つプライマリキーで削除された行が2番目のテーブルへの外国人のキーの参照で最初のテーブルの削除行のための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句であることを書いている:
は今、私は一つだけのアイテムを削除しようとしています。 両方のアイテムを削除する際のガイドが必要です。
'when'部分は有効な構文です。トリガーが発火するときの条件を定義します。トリガーボディの一部ではありません。しかしながら、それは、「各行のために」必要とされる。 –