我在创建数据库表时遇到问题。我做过类似的事情:
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_CODE
inSEMESTER
表的表时,它给了我错误: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。
请帮忙!提前致谢。