0

我無法在單獨的數據表上映射事物。將會有DEPARTMENT_LOCATIONS,DEPARTMENT,EMPLOYEE和PROJECT的表格。 到目前爲止,所有的表格都是其他PROJECT創建的,因爲我收到了我的問題標題的錯誤消息。錯誤消息「ORA-02270:該列列表沒有匹配的唯一或主鍵」

下面是我用來創建是沒有錯誤創建表的信息:

EMPLOYEE表:

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)); 

現在,當我輸入項目表以下信息,我收到錯誤消息「ORA-02270:此列列表中沒有匹配的唯一或主鍵)

爲什麼發生這個錯誤,我需要做些什麼來糾正它?謝謝。

回答

1

你必須聲明dlocation是唯一的,以便在另一個表中引用它。

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

通過聲明它是唯一的,是否允許我通過它的編號引用任何部門位置?它是否會限制我在單一地點擁有多個部門號碼? – JRW2252

+0

您已經擁有DNUMBER上的主鍵,您可以使用此主鍵引用任何dept_location。聲明DLOCATION唯一性可確保DLOCATION列中不存在任何重複值,除null外,並且此列可用作另一個表中的外鍵引用。 – San

相關問題