例如,您删除一个表中的行,并链接到相应表中的条目。从第一个表中删除时,此触发器应从第二个表中删除元组(假设其外键匹配)。换句话说,级联删除。假设无法将级联删除选项添加到表中。
我正在使用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.
答案 0 :(得分: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;
答案 1 :(得分:0)
给出
STUD(rollno, name, birthdate)
RESULT(rollno, marks)
1)编写一个触发器,如果学生记录被删除,将从RESULT
表中删除所有相关记录。
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;