我有表格分配,应该有两个FK - ManagerID& ManagerProjID
CREATE TABLE Assignment
(
RescID NUMBER (8) NOT NULL ,
RProjID NUMBER (4) NOT NULL ,
AssignRole VARCHAR2(100) ,
ManagerID NUMBER (8) ,
ManagerProjID NUMBER (4),
CONSTRAINT Assignment_PK PRIMARY KEY ( RescID, RProjID)
)
;
当我尝试运行命令
时ALTER TABLE Assignment
ADD CONSTRAINT Assignment_Manager_FK FOREIGN KEY
( MANAGERID )
REFERENCES Assignment
( MANAGERID )
;
我收到的错误是此列列表没有匹配的唯一键或主键。
答案 0 :(得分:1)
您的查询未实现您的问题标题所述的内容。它试图自我引用列ManagerID
。
对于不是foreign key
或primary key
的列,您不能拥有unique key
引用,因为无法强制引用列的唯一性。 ManagerProjID
是一个非唯一列,因此您无法在其上创建foriegn密钥引用。
答案 1 :(得分:1)
Foreign key
无法引用自身。它只能引用PrimaryKey
答案 2 :(得分:1)
将主键添加到表中,并将主键引用到外键。