如何从给定的数据库模式创建单个表?
问题描述:
表的工作人员本身由主键和外键的如何从给定的数据库模式创建单个表?
我一直在使用这种查询语句
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.
这是数据库架构的图像:
答
如果你指的外键,然后创建子表之前绝对必须存在于表。在创建员工表之前,您的案例部门表必须存在。作为最佳实践,为主键和外键提供约束名称总是一个好主意。
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)
);
DEPARTMENT'表是否存在? – user75ponic
顺便说一句,表创建语法有一个额外的括号。 – user75ponic