找不到這些錯誤。一直在這工作太久請幫忙,我一直堅持這個約4個小時。sql創建表(foreign/ref key)(oracle)
CREATE TABLE Student
(
student_id varchar(25),
student_name varchar(25),
major varchar(10),
gpa number(3,2),
PRIMARY KEY(student_id)
);
CREATE TABLE Class
(
schedule_num varchar(25),
semester varchar(25),
course_name varchar(25),
course_number varchar(25),
credit varchar(4),
department varchar(25),
meeting_time varchar(25),
meeting_place varchar(25),
class_size_limit varchar (25),
PRIMARY KEY(schedule_num,semester)
);
CREATE TABLE Enrolls
(
semester varchar(25),
grade varchar(2),
PRIMARY KEY(student_id,schedule_num,semester),
student_id varchar(25) FOREIGN KEY REFERENCES Student(student_id),
schedule_num varchar(25) FOREIGN KEY REFERENCES Class(schedule_num),
);
2個誤差---
1)錯誤 - 缺少右括號線6
2)ERROR - 表或視圖不存在線1
我假設你要定義'enrolls'表中的錯誤。主鍵定義看起來不明智 - 鍵的三個組成部分都不是表中的列。你也不會使用'FOREIGN KEY REFERENCES',語法只是'REFERENCES'。我希望你想使用'varchar2'而不是'varchar',但這不會導致你的問題。 –
所以我們根本不需要外鍵?你是什麼意思看起來不明智? – dexterpointer
您嘗試在'enrolls'上定義複合主鍵。該組合鍵由三列組成 - 「student_id」,「schedule_num」和「學期」。 'student_id'不是表格中的一列。 'schedule_num'不是表中的列。使主鍵包含不存在的列是沒有意義的。要麼你想在你的表中包含這些列(這似乎是合理的),或者你想要以不同的方式定義關鍵字。用於定義內聯外鍵約束的語法不包括字面詞「外鍵」,只是「x引用tbl(x)」。 –