如何仅在某些条件下使SQL级联?
我希望仅当column1
的CHILD不等于column2C
时删除父NULL
值时才会在级联中删除子元组。
示例:
create PARENT table(
column1 varchar2(20) primary key,
column2 varchar2(20)
);
create CHILD table(
column1C varchar2(20),
column2C varchar2(20) default NULL,
primary key(column1C,column2C)
);
alter table CHILD
add constraint fk_const
foreign key(column1C) references parent(column1)
delete on cascade;
答案 0 :(得分:1)
你可以通过触发器来做到这一点。更具体地说,你必须为表parent的after delete事件写一个触发器来检查条件,如果是,则删除子表中的相应记录
答案 1 :(得分:1)
你尝试过使用触发器吗?它会更简单,更透明,如果您不需要它们而不修改定义,您可以禁用它们。如果需要,请提供适当的示例并尝试创建它们。