Почему возникает ошибка "в целевой внешней таблице «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 - составной ключ.
Как решить проблему?
Пара полей, которые вы пытаетесь использовать как внешний ключ, могут иметь не уникальные значения, как следствие будет непонятно на какую именно строку ссылается внешний ключ.