首页 > 解决方案 > 错误 ORA-00907: 缺少右括号?

问题描述

过去两天我一直在查看这段代码,但我似乎无法让它工作。它不断地给我

ORA-00907: 缺少右括号。

我知道这是一个经常出现的话题,但由于某种原因,我所看到的例子都没有帮助我。有人可以告诉我为什么会出现此错误以及如何解决吗?我很确定这与我的括号无关,也许是我的约束?

CREATE TABLE General_STAFF(
GS_PEOPLE_ID NUMBER NOT NULL,
Dept_Id NUMBER NOT NULL,
staff_type varchar2(30),
staff_salary int,
date_hired date,
CONSTRAINT general_staff_pk PRIMARY KEY(GS_PEOPLE_ID) REFERENCES PEOPLE(PEOPLE_ID),
CONSTRAINT general_staff_fk1 FOREIGN KEY(DEPT_ID) REFERENCES DEPARTMENT(DEPT_ID)
);

标签: oracle

解决方案


PRIMARY KEY 不得引用任何内容

所以我认为你想要这样的东西:

CREATE TABLE General_STAFF(
GS_PEOPLE_ID NUMBER NOT NULL,
Dept_Id NUMBER NOT NULL,
staff_type varchar2(30),
staff_salary int,
date_hired date,
CONSTRAINT general_staff_pk primary key ( GS_PEOPLE_ID , Dept_Id),
CONSTRAINT general_staff_fk1 FOREIGN KEY(GS_PEOPLE_ID) REFERENCES PEOPLE(PEOPLE_ID),
CONSTRAINT general_staff_fk2 FOREIGN KEY(DEPT_ID) REFERENCES DEPARTMENT(DEPT_ID)
);

推荐阅读