oracle - 错误 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)
);
解决方案
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)
);
推荐阅读
- javascript - javascript 使用复选框显示多个隐藏内容
- python - Django 表单验证不验证图像
- python - 为什么运行如此缓慢,我该如何加快速度?
- c# - 为什么openxml页脚不发布到文档
- javascript - 我在使用 async/sync/timings 时遇到的 JS 问题
- git - 无法将文件夹 www 添加到 github 存储库
- javascript - 我如何操作这个字符串
- reactjs - 在 React Native 的 HTTP 请求中将对象列表作为正文发送
- php - 如何在 PHP 中显示表单?
- c++ - 使用 InfluxdbV2.h 将 ESP32 数据写入 Influxdb 会出现 NULL 错误