0

たとえば、あるテーブルの行を削除すると、対応するテーブルのエントリにリンクされます。このトリガーは、最初のテーブルから削除するときに、この 2 番目のテーブル (外部キーが一致すると仮定) からタプルを削除する必要があります。つまり、カスケード削除です。カスケード削除オプションをテーブルに追加できないふりをします。

私はOracle/SQL Plusを使用していますが、これが私の試みです:

CREATE OR REPLACE TRIGGER delCascade
    BEFORE DELETE ON student
    REFERENCING OLD AS oldRow
    FOR EACH ROW    
BEGIN
    DELETE FROM taking
    WHERE taking.studentnum = oldRow.studentnum;
END;
/

警告が表示され続けます:

Warning: Trigger created with compilation errors.
4

2 に答える 2

2

これを試して

CREATE OR REPLACE TRIGGER delCascade
    BEFORE DELETE ON student
    REFERENCING OLD AS oldRow
    FOR EACH ROW    
BEGIN
    DELETE FROM taking
    WHERE taking.studentnum = :oldRow.studentnum;
END;
于 2013-04-23T05:27:58.333 に答える
0

与えられた

STUD(rollno, name, birthdate)
RESULT(rollno, marks)

RESULT1)学生のレコードが削除された場合、関連するすべてのレコードをテーブルから削除するトリガーを記述します。

create or replace trigger del_trg
after delete on stud_trg
for each row
begin
    if deleting then
        delete from result where stud_trg.rollno=result.rollno;
    end if;
end;    
于 2016-12-06T02:58:14.323 に答える