TL; DR
Я ищу ясности в этом: требует ли FOREIGN KEY
UNIQUE CONSTRAINT
с другой стороны, в частности, в Postgres и, как правило, в отношениисистемы баз данных?
Возможно, я могу проверить это, но я спрошу, если FOREIGN KEY
требует UNIQUE CONSTRAINT
, что произойдет, если я его не создам?Будет ли база данных создавать одну или она выдаст ошибку?
Как я туда попал
Ранее я создавал таблицу со столбцом username
, на которую наложил уникальное ограничение.Затем я создал другую таблицу со столбцом bearer_name
, в котором FOREIGN KEY
ссылается на столбец предыдущей таблицы username
;тот, который имел UNIQUE CONSTRAINT
.
Теперь я хочу удалить UNIQUE CONSTRAINT
в столбце username
из базы данных, потому что позже я создал UNIQUE INDEX
для того же столбца и интуитивноЯ чувствую, что они служат той же цели, или нет?Но база данных жалуется, что у UNIQUE INDEX
есть некоторые зависимые объекты, и поэтому его нельзя отбросить, пока я не предоставлю CASCADE
в качестве опции для удаления даже зависимого объекта.Он определяет столбец FOREIGN KEY
на bearer_name
во второй таблице как зависимый объект.
И возможно ли для FOREIGN KEY
быть точкой на UNIQUE INDEX
вместо UNIQUE CONSTRAINT