如何使主键成为另一个 table 中的外键?

how to make a primary key a foreign key in another table?

这是我的 table,我对最后一个(铭文)有疑问,它不接受 "CodeProjet" 作为外键,错误显示 table( Projet) 没有名为 "CodeProjet" 的主键,但它确实有 !!!!,我使用了我知道的所有技巧但什么都没有,我改变了 table 以添加约束......等等我总是没有得到同样的错误!!。这里是 tables :

创建数据库Gestion_Stages_Employe

创建table 雇员 ( NumEmploye int 主键, NomEmploye varchar(15), PrenomEmploye varchar(15), SexeEmploye varchar(10), DNaiss员工日期, FunctionEmploye varchar(20) )

创建tableTypeProjet ( TypeProjet varchar(20) 主键, libelleProjet varchar(20), Duree项目日期, )

创建 table 项目 ( 代码项目 int, TypeProjet varchar(20), 日期首次亮相日期, DateFin 日期, 约束Pk_CodeProj主键(CodeProjet,TypeProjet), 约束 FK_TypeProj 外键 (TypeProjet) 引用 TypeProjet(TypeProjet), )

创建table铭文 ( NumEmploye int 外键引用 Employe(NumEmploye), CodeProjet int 外键引用 Projet(CodeProjet), 日期描述日期, 主键(NumEmploye,CodeProjet), )

正如评论中提到的,Projet table 上的主键是 "composite key"(需要多个列以确保唯一性)。

因此,要使您的外键起作用,您需要从 Project 的主键中删除 "TypeProjet"(假设 CodeProjet 足以唯一标识一个 Projet),或者您需要添加 TypeProjet到 Inscription table 并用两列定义外键,例如:

create table Inscription ( 
  NumEmploye int foreign key references Employe(NumEmploye), 
  CodeProjet int,
  dateiscription Date, 
  TypeProjet varchar(20),
  Constraint fk_Inscription_project Foreign key (CodeProjet,TypeProjet) references Projet(CodeProjet,TypeProjet),
  primary key (NumEmploye,CodeProjet),
)