如何将MgrId
中的ManagerProject
与EmpId
表格中的Employee
相关联?
这是我试过的wat:
CREATE TABLE Employee(EmpId varchar2(5),
EmpName varchar2(25),
DeptId varchar2(3),
Salary Number(8),
Constraint PK_addn primary key (EmpId, DeptId),
Constraint fk_Department foreign key (DeptId) references Department (DeptId));
但第二个表未能创建:
CREATE TABLE ManagerProject(ProjId varchar2(4),
MgrId varchar2(5),
StartDate Date,
EndDate Date,
Constraint fk_managerproject foreign key (MgrId) references Employee (EmpId),
Constraint PK_Managerproject Primary key(ProjId, MgrId, StartDate));
显示
ORA-02270:此列列表没有匹配的唯一键或主键
答案 0 :(得分:0)
错误消息表明您正在尝试创建引用没有唯一键或主键约束的列的FK。
假设您不想将DeptId
列添加到ManagerProject
,则需要在employee
上添加唯一键:
alter table Employee add constraint empId_UK unique ( empId)
但这很大程度上取决于你的架构应该是什么。
如果您要将DeptId
列添加到ManagerProject
,则需要在引用EmpId
时修改您的FK以使用DeptId
和employee