Как ограничить количество внешнего ключа на запись - PullRequest
0 голосов
/ 11 июля 2019

У меня есть 3 таблицы Title, Detail, TypeDetail, и мне нужно добавить внешний ключ или правило, ограничения и т. Д. Как я могу контролировать количество деталей в заголовке, в нем могут быть только детали каждого типа.

Я пытался использовать внешние ключи.

Мои таблицы

Create table Title(
TitleID int identity(1,1) primary Key not null)

Create table Type(
TypeID int identity(1,1) primary Key not null)

Create table Detail(
DetailID int identity(1,1) primary Key not null,
TitleID int REFERENCES Title(TitleID),
TypeID int REFERENCES Type(TypeID))

Данные в заголовке

TitleID
1
2

Данные в типе

TypeID
1
2
3

Подробные данные

DetailID|TitleID|TypeID
1|1|1
2|1|2
3|1|3
4|2|1
5|2|2
6|1|1 // cant because I all ready inserted the Type 1 for Title 1

Я хочу сделать это ограничение.Помогите ли?

1 Ответ

1 голос
/ 11 июля 2019

Я думаю, что вы хотите уникальное ограничение:

create table Detail (
    DetailID int identity(1,1) primary Key not null,
    TitleID int REFERENCES Title (TitleID),
    TypeID int REFERENCES Type (TypeID),
    constraint unq_detail_title_type unique (Title, Type)
);

Это не позволит дублировать пары в таблице.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...