表人员本身由主键和外键组成
我一直在使用此查询语句
CREATE TABLE STAFF (
STAFF_ID number,
STAFF_NAME varchar(30),
DEPARTMENT_ID number,
PRIMARY KEY(STAFF_ID),
FOREIGN KEY(DEPARTMENT_ID) references DEPARTMENT(DEPARTMENT_ID))
);
我已经写了这个并且得到一个"对象的工作人员并不存在错误"以及"缺失或无效的选项"。相应的代码为ORA 04043 AND ORA 00922.
这是数据库架构的图像:
答案 0 :(得分:0)
如果要引用外键,那么在创建子表之前,该表必须存在。在您的情况下,在创建Staff表之前,必须存在Department表。作为最佳实践,为主键和外键提供约束名称总是一个好主意。
CREATE TABLE department
(
department_id NUMBER,
department_name VARCHAR2 (30),
department_block_number NUMBER,
CONSTRAINT department_pk PRIMARY KEY (department_id)
);
CREATE TABLE staff
(
staff_id NUMBER,
staff_name VARCHAR (30),
department_id NUMBER,
CONSTRAINT staff_pk PRIMARY KEY (staff_id),
CONSTRAINT department_fk FOREIGN KEY
(department_id)
REFERENCES department (department_id)
);