如何使主键成为另一个 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),
)
这是我的 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),
)