Внешние ключи

SQL во всех проявлениях - от ANSI-92 до TSQL.

Модераторы: Yurich, Absurd

Ответить
assis2007
Сообщения: 78
Зарегистрирован: 04 ноя 2007, 19:17

28 окт 2010, 12:46

Добрый день. Проблема заключается в том что я не могу соединить таблицы между собой внешними ключами
2 таблицы
CREATE TABLE "AVTORI_KNIGI"
( "AVTOR" CHAR(100) NOT NULL ENABLE,
"KNIGA" CHAR(100) NOT NULL ENABLE,
"ID_AVTOR" NUMBER NOT NULL ENABLE,
"ID_KNIGA" NUMBER NOT NULL ENABLE,
CONSTRAINT "AVTORI_KNIGI_PK" PRIMARY KEY ("ID_AVTOR", "ID_KNIGA") ENABLE,
CONSTRAINT "AVTORI_KNIGI_FK" FOREIGN KEY ("ID_AVTOR")
REFERENCES "AVTORI" ("NOMER") ENABLE
)
/

CREATE TABLE "KATALOG_KNIG"
( "RUBRIKATOR" CHAR(20) NOT NULL ENABLE,
"SHIFRR_IZDANIA" CHAR(15) NOT NULL ENABLE,
"NAZVANIE_KNIGI" CHAR(100) NOT NULL ENABLE,
"IZDATELSTVO" CHAR(100) NOT NULL ENABLE,
"GOD_IZDANIA" NUMBER NOT NULL ENABLE,
"KOLICHESTVO_STRANIC" NUMBER,
"PRIMECHANIE" CHAR(100),
"NOM_KNIGA" NUMBER NOT NULL ENABLE,
CONSTRAINT "KATALOG_KNIG_CON" PRIMARY KEY ("RUBRIKATOR", "SHIFRR_IZDANIA", "NOM_KNIGA") ENABLE
)
/

Соединяю между собой KATALOG_KNIG и AVTORI_KNIGI
ALTER TABLE KATALOG_KNIG
ADD CONSTRAINT KATALOG_KNIG_FK1 FOREIGN KEY (nom_kniga)
REFERENCES avtori_knigi(ID_kniga);
выдаёт ошибку ORA-02270: no matching unique or primary key for this column-list
Хотя оба поля являются первичными ключами
Субд oracle 10
Пробовал сделать поле NOM_KNIGA просто уникальным тож ошибку выдавал.
Ответить