问题描述
CREATE TABLE EMP(EMP_ID NUMBER(5),F_NAME VARCHAR2(20) NOT NULL,L_NAME VARCHAR2(20) NOT NULL,EMAIL VARCHAR2(20) NOT NULL,PHONE_NO NUMBER(10) NOT NULL,HIRE_DATE DATE NOT NULL,JOB_ID NUMBER(5) NOT NULL,SALARY NUMBER(5) NOT NULL,COMMISSION_PCT NUMBER(5),MANAGER_ID NUMBER(5) NOT NULL,DEPT_ID NUMBER(5) NOT NULL,PRIMARY KEY (EMP_ID),CONSTRAINT FK_ED FOREIGN KEY (DEPT_ID) REFERENCES DEPT (DEPT_ID),CONSTRAINT FK_EDM FOREIGN KEY (MANAGER_ID) REFERENCES DEPT (MANAGER_ID));
当我添加这一行时,它会引发错误ORA-02270
。
我已经创建了表DEPT,其中包含dept_id
作为主键,而manager_id
不包含空值。但是,当我将外键用作dept_id
时,没有错误,但是对于manager_id
来说,它抛出了错误。
请帮助我解决这个问题。
解决方法
dept_id是DEPT中的主键,因此在EMP中可以有一个外键。
manager_id只是DEPT中的一个非空列。由于它不是DEPT中主键的一部分,因此在EMP中不能有外键。