制定一个取决于另一个表的检查约束

时间:2016-06-30 16:14:08

标签: sql oracle

我在Oracle工作。我有两个表,一个带有ID列和详细信息表的主表,一个ID列,一个主表的外键和一个名称列。

MASTER
--------
ID

格式化中断

DETAIL
-------------
ID
MASTER_ID
NAME

我希望给定母版的所有子细节都具有唯一的名称。但是,名称在细节中并不是唯一的。具有不同主人的两个细节可能具有相同的名称。

我认为我可以通过检查约束来做到这一点,但我正在努力解决这个问题。

1 个答案:

答案 0 :(得分:2)

听起来你不想要check约束。听起来你想要一个独特的约束

alter table detail_table
  add constraint name_uniq_within_master unique( master_id, name );

这会阻止您使用相同namemaster_id的两行,但会允许具有相同name和不同master_id值的行。