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
而不是两列。
我已经创建了两个包含一些列和所有这些东西的表。我收到错误 "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
而不是两列。