我是oracle的新手。我创建了一个简单的表,我从一个注释中引用
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
) ;
但后来我收到了错误
参考部门, *第4行的错误:ORA-00942:表或视图不存在
我检查了说明,他们没有说创建部门表。他们只是展示如何创建员工表。
答案 0 :(得分:0)
错误说明DEPARTMENTS表缺失...下面的外键constratint引用departments表的department_id列。
CONSTRAINT emp_dept_fk FOREIGN KEY(department_id) 参考部门
因此,使用department_id列创建departments表,并添加以下约束,您需要创建一个包含job_id列的作业表...
CONSTRAINT emp_job_fk FOREIGN KEY(job_id) REFERENCES个职位(job_id),