簡體   English   中英

錯誤:找不到主表的引用字段的唯一索引

[英]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)

錯誤消息非常清楚地指出了問題。

在表TAAKTaaknr是主鍵的一部分,但它沒有強制為它自己獨特的。 因此,您不能在外鍵聲明中引用它。

您或者需要在該列上添加唯一索引,或者應該創建引用TAAK表中兩個主鍵列的外鍵。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM