У меня есть две следующие таблицы:
НОМЕРА:
ID_Rooms PK number,
RoomNumber number,
COD_RoomType number,
RoomPrice number,
Floor number
D_ROOMTYPE:
ID_d_RoomType PK number,
RoomType varchar2,
COD_RoomType number
В первой таблице хранится информация о гостиничных номерах, а во второй - кодификация типов номеров (двухместный номер, трехместный номер, семейный номер и т. Д.). Данные второй таблицы будут использованы для определения типов комнат в первой.
Мне нужно установить связь между двумя таблицами, но не на основе отношения первичного / внешнего ключа, а на столбце COD_RoomType, который появляется в обеих.
Я пытался:
ALTER TABLE rooms
ADD CONSTRAINT rooms_FK1 FOREIGN KEY (COD_RoomType) REFERENCES d_RoomType(COD_RoomType) enable;
но я получаю следующий отчет об ошибке:
Отчет об ошибке:
Ошибка SQL: ORA-02270: нет соответствующего уникального или первичного ключа для этого списка столбцов 02270. 00000 - «Нет соответствующего уникального или первичного ключа для этого списка столбцов»* Причина: предложение REFERENCES в операторе CREATE / ALTER TABLE дает список столбцов, для которого нет соответствующего ограничения уникальности или первичного ключа в указанной таблице.
* Действие: Найдите правильные имена столбцов с помощью представления каталога ALL_CONS_COLUMNS
Есть ли способ установить связь между двумя таблицами в столбце COD_RoomType без использования первичного / внешнего ключа? Если да, то какие еще изменения я должен сделать и как будет выглядеть код SQL?
Спасибо, Калин
cod_roomtype
, а затем будет внешний ключ для этой новой таблицы из таблицrooms
иd_roomtype
. Однако я не совсем уверен, зачем вам это нужно - какова связь между комнатой, типом комнаты и cod_roomtype? - person Boneist   schedule 04.05.2016cod_roomtype
не уникален. Если это так, вы можете продолжить ответ Алексея ниже.) - person Boneist   schedule 04.05.2016