Ссылочное ограничение Oracle - PullRequest
       2

Ссылочное ограничение Oracle

0 голосов
/ 01 августа 2011

Могу ли я иметь внешний ключ с меньшим количеством столбцов первичных / уникальных ключей, на которые он ссылается? (Ошибка ORA-02270 говорит нет)

Ответы [ 2 ]

4 голосов
/ 01 августа 2011

Вы можете использовать меньше столбцов, но столбцы, которые вы делаете , должны иметь УНИКАЛЬНОЕ ограничение на них.

И, конечно, если вы можете наложите УНИКАЛЬНОЕ ограничение только на часть первичного ключа, а затем задайте себе вопрос: «Почему у моего первичного ключа больше столбцов, чем нужно в первую очередь?»

2 голосов
/ 01 августа 2011

ФК не обязательно является ПК другой таблицы. Может быть, но это не обязательно.

Таким образом, вы можете использовать в качестве FK столько столбцов, сколько вам нужно ...

С оракул :

Внешний ключ в дочерней таблице обычно ссылается на первичный ключ в родительской таблице.

Редактировать : исходный вопрос был о количестве столбцов, а не об использовании неполного PK в качестве FK.

ФК должен ссылаться на что-то уникальное в другой таблице. Таким образом, вам придется использовать любой столбец, имеющий ограничение UNIQUE, или PK другой таблицы (поскольку PK также должен быть уникальным. Например, вы выбираете несколько столбцов из таблицы, потому что каждый столбец не является отдельным. уникальный, но объединение нескольких столбцов будет уникальным).

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