2016-07-05 40 views
2

我收到試圖創建一個表時,這個錯誤,我不知道爲什麼: [2016-07-05 14:08:02] [42000][2270] ORA-02270: no matching unique or primary key for this column-list的Oracle SQL:接收「無匹配的唯一或主鍵」的錯誤和不知道爲什麼

這個問題看起來與similar question不同(對我來說),因爲在那個問題中,OP是用一個組合PK引用一個表,而我不是。

雖然這other question具有相同的錯誤代碼,這是因爲OP是不正確的引用主鍵,我不認爲認爲我做到了。

可能有人在SQL更有經驗教育我嗎?

(一對夫婦的注意事項:1)我知道,表/列名有微小的誤差/偏離慣例,但是這是家庭作業,老師要求我有表和行宣佈正是他方式,即使它是非常規的。 2)是的,這很愚蠢;但沒有,我不能改變,否則我得到下調)

CREATE TABLE Student_Course 
(
    Stu_ID NUMBER(5) NOT NULL, 
    Course_ID VARCHAR2(8) NOT NULL, 
    Section# NUMBER(3), 
    CONSTRAINT pk_stu_crse PRIMARY KEY (Stu_ID, Course_ID), 
    CONSTRAINT fk_course_id FOREIGN KEY (Course_ID) REFERENCES course(Course_ID), 
    CONSTRAINT fk_stu_id FOREIGN KEY (Stu_ID) REFERENCES student(Stu_ID), 
    CONSTRAINT fk_section FOREIGN KEY (Section#) REFERENCES course(Section#) 
) 

只有兩種,小的,引用的表,它們是:

CREATE TABLE student 
(
    Stu_ID NUMBER(5) PRIMARY KEY , 
    Lname VARCHAR2(20), 
    Fname VARCHAR2(20), 
    Mi CHAR(1), 
    Sex CHAR(1), 
    Major VARCHAR2(15), 
    Home_State CHAR(2) 
); 

CREATE TABLE course 
(
    Course_ID VARCHAR2(8) PRIMARY KEY , 
    Section# NUMBER(3), 
    C_Name VARCHAR2(30), 
    C_Description VARCHAR2(30) 
); 

回答

4

外鍵是一個參考另一個表中的主鍵。

最後一個約束CONSTRAINT fk_section FOREIGN KEY (Section#) REFERENCES course(Section#)將無法​​正常工作 - Section#是不是在該表

0

多虧了很好的答案,我張貼我的代碼,我糾正基於這裏的幫助。希望我的更正對未來有幫助。

CREATE TABLE student 
(
    Stu_ID NUMBER(5) PRIMARY KEY , 
    Lname VARCHAR2(20), 
    Fname VARCHAR2(20), 
    Mi CHAR(1), 
    Sex CHAR(1), 
    Major VARCHAR2(15), 
    Home_State CHAR(2) 
); 

CREATE TABLE course 
(
    Course_ID VARCHAR2(8) , 
    Section# NUMBER(3) , 
    C_Name VARCHAR2(30), 
    C_Description VARCHAR2(30), 
    CONSTRAINT pk_course PRIMARY KEY (Course_ID, Section#) 
); 

CREATE TABLE Student_Course 
(
    Stu_ID NUMBER(5) , 
    Course_ID VARCHAR2(8) , 
    Section# NUMBER(3) , 
    CONSTRAINT pk_stu_crse PRIMARY KEY (Stu_ID, Course_ID, Section#), 
    CONSTRAINT fk_stu FOREIGN KEY (Stu_ID) REFERENCES student(Stu_ID), 
    CONSTRAINT fk_course_id FOREIGN KEY (Course_ID, Section#) REFERENCES course(Course_ID, Section#) 
); 
相關問題