Oracle外键允许一个额外的特定值

时间:2016-02-18 09:37:42

标签: oracle constraints

我有一个简单的表格:

-- Create table
create table FAVOURITE_RULES
( rule_id NUMBER(9) not null,
  user_id     NUMBER(9) not null);
-- Create/Recreate primary, unique and foreign key constraints 
alter table FAVOURITE_RULES
 add constraint FAV_RULES_PK primary key (RULE_ID, USER_ID)

alter table FAVOURITE_RULES
 add constraint FAV_RULES_RULE_ID_FK foreign key (RULE_ID)
 references RULES (RULE_ID) on delete cascade;

alter table FAVOURITE_RULES
 add constraint FAV_RULES_USER_ID foreign key (USER_ID)
 references USER_AUTHENTICATION (USER_ID) on delete cascade;

我有一条规则(来自.Net代码)原始表RULES中不存在。它的Id = -999 当我尝试插入FAVOURITE_RULES时,我收到有关违反完整性约束违规(如预期)(FAV_RULES_RULE_ID_FK)的错误 - 未找到父键。
我可以保留外键(FAV_RULES_RULE_ID_FK)并仅允许插入此值(-999)吗?

1 个答案:

答案 0 :(得分:1)

可能会有所帮助。

第1步:删除fk约束 第2步:插入违规行 第3步:再次使用ENABLE NOVALIDATE创建fk约束