2017-09-28 20 views
-1

COURSEテーブルが最後のテーブルに接続するようにテーブルをリンクしようとしています。問題を解決する方法を確認しないでください。私のコードでsqlの問題が発生し、外部キーエラーが発生する

CREATE TABLE STUDENTS (
Student_ID int not null, 
Student_Name VARCHAR(25) not null, 
Student_Gender CHAR(1) null, 
Student_DOB DATE not null 
CONSTRAINT PK_STUDENTS Primary Key (Student_ID)); 

CREATE TABLE COURSE (
COURSE_NO int not null, 
COURSE_Name VARCHAR(20) not null, 
Instructor_Name VARCHAR(20) not null, 
Semester_No int not null, 
Year CHAR(4) not null, 
CONSTRAINT PK_Courses PRIMARY KEY (COURSE_NO)); 

CREATE TABLE STUDENT_CLASS (
Student_ID int REFERENCES STUDENTS(Student_ID), 
COURSE_NO int not null, 
Semester_No int not null, 
Year CHAR(4) not null, 
PRIMARY KEY (Student_ID, COURSE_NO), 
FOREIGN KEY (COURSE_NO, Semester_NO, Year) 
REFERENCES COURSE(COURSE_NO, Semester_NO, Year)); 
+0

どのようなエラーがありますか?何が問題なの? 「接続する」とはどういう意味ですか? (技術用語を正しく使用してください。)[mcve]を読んで行動してください。また[尋ねる]と[ヘルプ]、そしてGoogleの 'stackexchange宿題'。そして、あなたのエラーメッセージはあなたのテーブル名を駄目にします。 FKsの公式文書を読んでください。そして、これはよくあることです。 (おそらくこれについての最初の質問かもしれませんか?) – philipxy

答えて

0

あなたSTUDENT_CLASSFOREIGN KEY (COURSE_NO, Semester_NO, Year) REFERENCES COURSE(COURSE_NO, Semester_NO, Year)は理にかなっている場合は、リスト(COURSE_NO, Semester_NO, Year)PKPRIMARY KEY)またはCOURSEUNIQUE NOT NULLとして宣言する必要があります。あなたの名前とスキーマを考慮して、のCOURSEには、少なくとも(COURSE_NO, Semester_NO, Year)の列を含める必要があります。 (COURSE_NOPKだった場合、そのテーブルにはコース番号が1行しかないことがあります)。不一致を解決する方法を十分に教えてくれていませんが、その変更をPK

関連する問題