我在Oracle工作。我有两个表,一个带有ID列和详细信息表的主表,一个ID列,一个主表的外键和一个名称列。
MASTER
--------
ID
格式化中断
DETAIL
-------------
ID
MASTER_ID
NAME
我希望给定母版的所有子细节都具有唯一的名称。但是,名称在细节中并不是唯一的。具有不同主人的两个细节可能具有相同的名称。
我认为我可以通过检查约束来做到这一点,但我正在努力解决这个问题。
答案 0 :(得分:2)
听起来你不想要check
约束。听起来你想要一个独特的约束
alter table detail_table
add constraint name_uniq_within_master unique( master_id, name );
这会阻止您使用相同name
和master_id
的两行,但会允许具有相同name
和不同master_id
值的行。