Задать вопрос
@fachel32

Почему возникает ошибка "в целевой внешней таблице «apartment» нет ограничения уникальности, соответствующего данным ключам"?

есть 3 таблицы :
CREATE TABLE BUILDING(
housing_name CHARACTER VARYING(20) PRIMARY KEY
);

CREATE TABLE APARTMENT( --НОМЕР
number_of_apartment INTEGER ,
housing_name CHARACTER VARYING(30) REFERENCES BUILDING (housing_name) ,
PRIMARY KEY(housing_name, number_of_apartment)
);

CREATE TABLE ACCOMMODATION( --ПРОЖИВАНИЕ
id serial primary key,
number_of_apartment INTEGER ,
housing_name CHARACTER VARYING(30) ,
FOREIGN KEY (housing_name, number_of_apartment ) REFERENCES APARTMENT (housing_name,
number_of_apartment)
);

1 и 2 таблицы создаются без ошибок , при создании 3-ей возникает ошибка :
"в целевой внешней таблице "apartment" нет ограничения уникальности, соответствующего данным ключам"
Хотя в "apartment" housing_name и number_of_apartment - составной ключ.
Как решить проблему?
  • Вопрос задан
  • 9191 просмотр
Подписаться 1 Простой Комментировать
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега PostgreSQL
Седой и строгий
Пара полей, которые вы пытаетесь использовать как внешний ключ, могут иметь не уникальные значения, как следствие будет непонятно на какую именно строку ссылается внешний ключ.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы