[英]Error: No unique index found for the referenced field of the primary table
我正在嘗試使用AnySQL Maestro腳本創建數據庫。 我有以下代碼:
create table KLANT
(
Klantnr integer,
Naam varchar(255),
Adres varchar(255),
Plaats varchar(255),
constraint pk_klant
primary key (Klantnr)
); -- go
create table MEDEWERKER
(
Mdwnr integer,
Naam varchar(255),
Telnr integer,
Afdnr integer,
constraint pk_medewerker
primary key (Mdwnr)
); -- go
create table AFDELING
(
Afdnr integer,
Afdnaam varchar(255),
Mdwnr integer,
constraint pk_afdeling
primary key (Afdnr)
); -- go
alter table MEDEWERKER
add constraint fk_medewerker_afdeling foreign key(Afdnr) references Afdeling(Afdnr);
alter table AFDELING
add constraint fk_afdeling_medewerker foreign key(Mdwnr) references Medewerker(Mdwnr);
create table TAAK
(
Taaknr integer,
ProjID integer,
Urenomvang integer,
constraint pk_taak
primary key (Taaknr, ProjID)
); -- go
create table Project
(
ProjID integer,
ProjNaam varchar(255),
Startdatum varchar(255),
Sluitdatum varchar(255),
Klantnr integer,
Mdwnr integer,
ParentProjid integer,
constraint pk_project
primary key (ProjID),
constraint fk_project_klantnr
foreign key(Klantnr) references klant(Klantnr),
constraint fk_project_medewerker
foreign key(Mdwnr) references medewerker(Mdwnr)
); -- go
alter table TAAK
add constraint fk_taak_project foreign key(ProjID) references Project(ProjID);
create table Assignment
(
Mdwnr integer,
ProjID integer,
Taaknr integer,
Weeknr integer,
AantalUren integer,
constraint pk_assignment
primary key (Mdwnr, ProjID, Taaknr, Weeknr),
constraint fk_assignment_medewerker
foreign key(Mdwnr) references medewerker(Mdwnr),
constraint fk_assignment_project
foreign key(ProjID) references Project(ProjID),
constraint fk_assignment_taak
foreign key(Taaknr) references Taak(Taaknr)
); -- go
不幸的是,最后一個表Assignment給出以下錯誤消息:
在主表的引用字段中找不到唯一索引
有人能幫我嗎? 我被卡住了
Taak
上的主鍵由兩列組成:
constraint pk_taak primary key (Taaknr, ProjID)
您的約束僅引用其中之一。
您還需要ProjID
:
約束fk_assignment_taak外鍵(Taaknr,ProjID)引用Taak(Taaknr,ProjID)
錯誤消息非常清楚地指出了問題。
在表TAAK列Taaknr是主鍵的一部分,但它沒有強制為它自己獨特的。 因此,您不能在外鍵聲明中引用它。
您或者需要在該列上添加唯一索引,或者應該創建引用TAAK表中兩個主鍵列的外鍵。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.