sql - SQL 外键帮助。ORA-00907 缺少右括号
问题描述
我是 SQL 新手,我在 CourseEnrollments 表中的外键方面遇到问题。
我不断收到错误报告 - ORA-00907:缺少右括号 00907。00000 -“缺少右括号 *原因:*操作:
看来所有逗号和括号都已到位。
Create Table Students
(
StudentID INT NOT NULL,
Lastname VARCHAR2(25),
Firstname VARCHAR2(20),
Email VARCHAR2(40),
Enrollmentdate DATE,
CONSTRAINT student_pk PRIMARY KEY (StudentID)
);
/* This is the creation of the Students table */
Create Table Faculty
(
FacultyID INT NOT NULL,
Lastname VARCHAR2(25),
Firstname VARCHAR2(20),
Email VARCHAR2(40),
Hiredate DATE,
CONSTRAINT faculty_pk PRIMARY KEY (FacultyID)
);
/* This is the creation of the Faculty table */
Create Table Courses
(
CourseID INT NOT NULL,
"Subject (e.g. SDEV)" VARCHAR2(20),
"Catalognbr (e.g. 350)" NUMBER,
"Title (e.g. Database Security)" VARCHAR2(40),
CONSTRAINT course_pk PRIMARY KEY (CourseID)
);
/* This is the creation of the Courses table */
Create Table CourseEnrollments
(
EnrollmentID INT NOT NULL,
CONSTRAINT fk_Students
FOREIGN KEY (StudentID)
REFERENCES Students(StudentID)
CONSTRAINT fk_Faculty
FOREIGN KEY (FacultyID)
REFERENCES Faculty(FacultyID)
CONSTRAINT fk_Courses
FOREIGN KEY (CourseID)
REFERENCES Courses(CourseID)
CONSTRAINT enrollment_pk PRIMARY KEY (EnrollmentID)
);
解决方案
首先,应首先明确定义需要约束的列,然后您可以定义约束。此外,当您定义多个约束时,它们需要用逗号分隔。这是工作代码(其余代码已经可以了)。
Create Table CourseEnrollments
(
EnrollmentID INT NOT NULL,
StudentID int,
FacultyID int,
CourseID int,
CONSTRAINT fk_Students
FOREIGN KEY (StudentID)
REFERENCES Students(StudentID),
CONSTRAINT fk_Faculty
FOREIGN KEY (FacultyID)
REFERENCES Faculty(FacultyID),
CONSTRAINT fk_Courses
FOREIGN KEY (CourseID)
REFERENCES Courses(CourseID),
CONSTRAINT enrollment_pk PRIMARY KEY (EnrollmentID)
);
推荐阅读
- c++ - 使用 task_group 的英特尔线程构建模块性能不佳(新用户)
- android - Kotlin - Android 中的自定义对话框
- php - 将 mySQL 查询转换为 QueryBuilder
- optaplanner - 使用 OptaPlanner 的复合任务
- javascript - Electron 在更新组件样式时意外工作
- asp.net-core - ASP.NET Core:未找到 global.json 版本 2.1.400 的兼容 SDK 版本
- java - 从 Java Async 调用 Kotlin 代码
- php - ffmpeg 在终端中工作,但不在 php 中
- typescript - Typescript 对象属性类型
- ios - 如何通过 Swift 4 中的原始值获取枚举案例的名称?