2016-04-04 63 views
0

我有应该有两个FK表分配 - 经理ID & 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) 
; 

我收到的没有错误匹配此列列表的唯一或主键。

回答

1

您的查询未执行您的问题标题所指的内容。它试图自己参考一列ManagerID

你不能有一列是不是primary key或​​因为不会有强制执行的列的唯一性被引用的方式foreign key参考。 ManagerProjID是一个非唯一的列,因此您无法在其上创建foriegn密钥引用。

1

A Foreign key不能引用自己。它只能指PrimaryKey