Таблица с внешним ключом не будет компилироваться (не соответствует уникальный или первичный ключ для этого списка столбцов) - PullRequest
0 голосов
/ 02 июля 2019

Я создал две таблицы с некоторыми столбцами и всем этим.И я получаю сообщение об ошибке «нет соответствующего уникального или первичного ключа для этого списка столбцов», но я понятия не имею, что мне не хватает ...

Это базовые таблицы первичного и внешнего ключей, и он выиграл 'т компилировать.Я часами проверял интернет и ничего не обнаружил.

create table TP2_ITEM_FAVORI (
    NOM_UTILISATEUR varchar2(30) not null,
    NO_ITEM number(6) not null,
    constraint PK_ITEM_FAV primary key(NOM_UTILISATEUR, NO_ITEM));

create table TP2_UTILISATEUR (
    NOM_UTILISATEUR varchar2(30) not null,
    NO_ENCAN number(6) not null,
    MOT_DE_PASSE_UTI varchar(30) not null,
    NOM_UTI varchar2(20) not null,
    PRENOM_UTI varchar2(20) not null,
    TEL_UTI char(13) not null,
    COURRIEL_UTI varchar2(25) not null,
    TYPE_UTI varchar(20) not null,
    NOM_UTILISATEUR_PARENT varchar2(30) not null,
    constraint PK_UTILISATEUR primary key(NOM_UTILISATEUR),
    constraint AK_NOM_PRENOM_TEL_UTI unique(NOM_UTI, PRENOM_UTI, TEL_UTI),
    constraint AK_COURR_UTI unique(COURRIEL_UTI),
    constraint FK_NOM_UTILISATEUR_UTI foreign key(NOM_UTILISATEUR) references
    TP2_ITEM_FAVORI(NOM_UTILISATEUR));

1 Ответ

0 голосов
/ 02 июля 2019

Внешний ключ должен быть первичным ключом или уникальным столбцом другой таблицы: https://www.techonthenet.com/oracle/errors/ora02270.php.

В TP2_UTILISATEUR вы ссылаетесь TP2_ITEM_FAVORI(NOM_UTILISATEUR) как внешний ключ, но NOM_UTILISATEUR не являетсяпервичный ключ TP2_ITEM_FAVORI.Первичный ключ TP2_ITEM_FAVORI (NOM_UTILISATEUR, NO_ITEM).

Разрешение заключается в изменении первичного ключа TP2_ITEM_FAVORI на NOM_UTILISATEUR вместо обоих столбцов.

...