2016-06-30 3 views
0

Я работаю в Oracle. У меня есть две таблицы, главная таблица с столбцами идентификаторов и таблица подробностей, с столбцом идентификатора, внешним ключом в главной таблице и столбцом имен.Создание контрольной переменной, зависящей от другой таблицы

MASTER 
-------- 
ID 

форматирования перерыв

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

Я хочу, чтобы все дочерние детали данного мастера, чтобы иметь уникальные имена. Однако имя не является уникальным среди деталей. Две детали с разными мастерами могут иметь одно и то же имя.

Я думаю, что я могу сделать это с ограничением проверки, но я борюсь с тем, как его формулировать.

ответ

2

Не похоже, что вы хотите ограничение check. Похоже, что вы хотите ограничение уникальности

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

Это предотвратит вас от двух строк с одинаковым name и master_id, но позволил бы строки с одинаковыми name и различными master_id значениями.

+0

Я думаю, что это сделает трюк, спасибо. – monknomo

Смежные вопросы