2014-04-14 124 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),