2014-04-14 122 views
1

我是oracle新手。我創建了一個簡單的表格,這是我從一個筆記中引用的Oracle alter table references

CREATE TABLE employees (
employee_id NUMBER(6), 
first_name VARCHAR2(20), 
last_name VARCHAR2(25) CONSTRAINT emp_lname_nn NOT NULL, 
email VARCHAR2(25) CONSTRAINT emp_email_nn NOT NULL, 
phone_number VARCHAR2(20), 
hire_date DATE CONSTRAINT emp_hdate_nn NOT NULL, 
job_id VARCHAR2(10) CONSTRAINT emp_job_nn NOT NULL, 
salary NUMBER(8,2), 
commission_pct NUMBER(2,2), 
manager_id NUMBER(6), 
department_id NUMBER(4), 
CONSTRAINT emp_salary_min CHECK (salary > 0), 
CONSTRAINT emp_email_uk UNIQUE (email) 
) ; 

然後嘗試更改表格以將完整性約束添加到employees表中。完整性約束強制執行業務規則並防止將無效信息輸入到表中。

ALTER TABLE employees 
ADD (CONSTRAINT emp_emp_id_pk PRIMARY KEY (employee_id), 
CONSTRAINT emp_dept_fk FOREIGN KEY (department_id) 
REFERENCES departments, 
CONSTRAINT emp_job_fk FOREIGN KEY (job_id) 
REFERENCES jobs (job_id), 
CONSTRAINT emp_manager_fk FOREIGN KEY (manager_id) 
REFERENCES employees 
) ; 

但後來我得到一個錯誤

參考部門, * ERROR位於第4行:ORA-00942:表或視圖不存在

我檢查的說明,他們沒有提到創建部門表格。他們只是展示如何創建員工表。

+0

那麼你的問題是什麼? – zerkms

回答

0

錯誤cleary說DEPARTMENTS表丟失......下面的外鍵constratint引用了department表的department_id列。

約束EMP_DEPT_FK外鍵(部門標識) 參考部門

因此,創建部門表DEPARTMENT_ID列,也低於添加約束,你需要創建一個作業ID列jobs表...

約束emp_job_fk FOREIGN KEY(job_id) REFERENCES作業(job_id),