0

데이터를 별도의 테이블에 매핑하는 데 문제가 있습니다. DEPARTMENT_LOCATIONS, DEPARTMENT, EMPLOYEE 및 PROJECT에 대한 테이블이 있습니다. 지금까지 모든 질문은 내 질문의 제목에 대한 오류 메시지를 받기 때문에 PROJECT가 아닌 다른 모든 테이블이 만들어졌습니다.오류 메시지 "ORA-02270 :이 열 목록에 일치하는 고유 또는 기본 키가 없음"

직원 테이블 :

CREATE TABLE EMPLOYEE 
(FNAME VARCHAR(25) NOT NULL, 
MINIT CHAR(1), 
LNAME VARCHAR(25) NOT NULL, 
SSN NUMBER(10) NOT NULL, 
BDATE DATE NOT NULL, 
ADDRESS VARCHAR(30) NOT NULL, 
SEX CHAR(1) NOT NULL, 
SALARY DECIMAL(6,2) NOT NULL, 
SUPERSSN NUMBER(10), 
DNO NUMBER (1) NOT NULL, 
PRIMARY KEY (SSN), 
FOREIGN KEY (DNO) REFERENCES DEPT_LOCATIONS(DNUMBER)); 

DEPARTMENT_LOCATIONS 테이블 :

CREATE TABLE DEPT_LOCATIONS 
(DNUMBER NUMBER(1) NOT NULL, 
DLOCATION VARCHAR(25) NOT NULL, 
PRIMARY KEY (DNUMBER)); 

DEPARTMENT 표 : 아래

내가 오류없이 생성 된 테이블을 만드는 데 사용되는 정보입니다

CREATE TABLE DEPARTMENT 
(DNUMBER NUMBER(1) NOT NULL, 
DNAME VARCHAR(25) NOT NULL, 
MGRSTARTDATE DATE NOT NULL, 
MGRSSN NUMBER(10) NOT NULL, 
PRIMARY KEY (DNUMBER), 
FOREIGN KEY (DNUMBER) REFERENCES DEPT_LOCATIONS(DNUMBER), 
FOREIGN KEY (MGRSSN) REFERENCES EMPLOYEE(SSN)); 
. 나는 PROJECT 표에 대해 다음 정보를 입력 할 때

지금, 나는 "ORA-02270 오류 메시지가 나타납니다 :이 열 목록과 일치하는 고유 또는 기본 키)

왜이 오류가 발생하고 문제를 해결하려면 무엇을해야합니까? 고맙습니다.

답변

1

dlocation을 다른 테이블에서 참조하기 위해 고유 한 inorder로 선언해야합니다.

CREATE TABLE DEPT_LOCATIONS 
(DNUMBER NUMBER(1) NOT NULL, 
DLOCATION VARCHAR(25) UNIQUE, 
PRIMARY KEY (DNUMBER)); 
+0

고유하게 선언하면 번호로 부서 위치를 참조 할 수 있습니까? 그 단일 장소에서 여러 부서 번호를 사용하는 것을 제한합니까? – JRW2252

+0

이미 기본 키가 DNUMBER에 있으며이 기본 키를 사용하여 dept_location을 참조 할 수 있습니다. DLOCATION을 고유하게 선언하면 널 (NULL)을 제외하고 DLOCATION 컬럼에 중복 값이 ​​없어야하며이 컬럼을 다른 테이블의 외부 키 참조로 사용할 수 있습니다. – San