如何从Given数据库模式创建单个表?

时间:2017-06-13 07:51:09

标签: sql oracle rdbms create-table

表人员本身由主键和外键组成

我一直在使用此查询语句

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.

这是数据库架构的图像:

This is the image of database schema

1 个答案:

答案 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)
);
相关问题