Table 使用外键无法编译(此列列表没有匹配的唯一键或主键)

Table with foreign key won't compile (no matching unique or primary key for this column-list)

我已经创建了两个包含一些列和所有这些东西的表。我收到错误 "no matching unique or primary key for this column-list",但我不知道我错过了什么...

这是一个基本的主键和外键表,不会编译。我在网上查了几个小时,什么也没发现。

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));

一个外键需要是另一个table的主键或唯一列: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 而不是两列。