检查Oracle中两个表的约束

时间:2017-09-10 11:04:00

标签: oracle foreign-keys database-trigger check-constraints

我有两个一对一关系的表(并且只有一方强制关系)。如下:

create table PRS (
  id number(18) not null,
  common_code varchar2(10),
  constraint pk_prs primary key (id));

create table RLP {
  id number(18),
  spec_code varchar2(20),
  constraint pk_rlp primary key (id),
  constraint fk_rlp_prs foreign key (id) references prs(id) on delete cascade);

所以问题是当在RLP中插入记录时,common_codespec_code中的至少一个必须具有值。

是否可以使用约束来强制执行此约束,或者唯一的解决方案是否具有触发器?

1 个答案:

答案 0 :(得分:0)

似乎没有办法在两个表上创建约束,唯一的解决方案是创建一个触发器以在期望的情况下抛出异常。