2014-03-28 54 views
0

我在創建數據庫表時遇到問題。我做了一些事,如:不明白爲什麼我收到錯誤1215:無法添加外鍵

CREATE TABLE STREAM( STREAM_ID INT AUTO_INCREMENT NOT NULL PRIMARY KEY, STREAM_NAME VARCHAR(100) NOT NULL, TOTAL_SEM INT NOT NULL )Engine=InnoDB;

然後:

CREATE TABLE SEMESTER( STREAM_ID INT AUTO_INCREMENT NOT NULL, SEMESTER INT NOT NULL, SUB_NAME VARCHAR(100) NOT NULL, SUB_CODE VARCHAR(100) NOT NULL, PRIMARY KEY(STREAM_ID,SUB_CODE), CONSTRAINT STUDENT_STREAM_FK5 FOREIGN KEY (STREAM_ID) REFERENCES STREAM(STREAM_ID) )Engine=InnoDB;

它創建數據庫表非常好。但是,當我創建另一個表引用SUB_CODESEMESTER表它給了我錯誤:1215:

CREATE TABLE SUBJECT( Q_NO INT AUTO_INCREMENT NOT NULL, SUB_CODE VARCHAR(100) NOT NULL, SEMESTER VARCHAR(100) NOT NULL, SET_NO INT NOT NULL, Q_TYPE VARCHAR(100) NOT NULL, QUESTION VARCHAR(200) NOT NULL, CHOICE_1 VARCHAR(30), CHOICE_2 VARCHAR(30), CHOICE_3 VARCHAR(30), CHOICE_4 VARCHAR(30), CORRECT VARCHAR(30), ANSWER VARCHAR(30), MARKS FLOAT, PRIMARY KEY(Q_NO,SUB_CODE), CONSTRAINT STUDENT_SEMESTER_FK6 FOREIGN KEY (SUB_CODE) REFERENCES SEMESTER(SUB_CODE) )Engine=InnoDB;

在這種情況下,在創建SUBJECT表提示錯誤:1215。我不明白,我創建了表SEMESTER就像我嘗試創建SUBJECT一樣,那麼爲什麼它不工作? 我正在使用MySQL服務器5.6。

請幫忙! 在此先感謝。

回答

0

無論如何我解決了它。只是做它喜歡:

CREATE TABLE SUBJECT( Q_NO INT AUTO_INCREMENT NOT NULL PRIMARY KEY, SUB_CODE VARCHAR(100) NOT NULL REFERENCES SEMESTER(SUB_CODE), SEMESTER VARCHAR(100) NOT NULL, SET_NO INT NOT NULL, Q_TYPE VARCHAR(100) NOT NULL, QUESTION VARCHAR(200) NOT NULL, CHOICE_1 VARCHAR(30), CHOICE_2 VARCHAR(30), CHOICE_3 VARCHAR(30), CHOICE_4 VARCHAR(30), CORRECT VARCHAR(30), ANSWER VARCHAR(30), MARKS FLOAT )Engine=InnoDB;

我忽略使得SUB_CODE的主鍵。它完成了。無論如何都需要它成爲SEMESTER表的外鍵!

相關問題