CREATE TABLE GRADEINFO(
ID INT(8) PRIMARY KEY UNIQUE NOT NULL AUTO_INCREMENT,
SNO INT(8) NOT NULL,
CNO INT(4) NOT NULL,
LAST_TIME DATE,
TIMES INT(4) DEFAULT 1,
GRADE FLOAT DEFAULT 0,
CONSTRAINT GRADE_SNO_FK FOREIGN KEY(SNO)
REFERENCES STUDENTINFO(SNO),
CONSTRAINT GRADE_CNO_FK FOREIGN KEY(CNO)
REFERENCES STUDENTINFO(CNO) );
在这之前已经在其他的表中定义了SNO,CNO 并且都是主键,然后执行以上报错 说不能创建此表
去掉红色字以后就可以创建了 为什么不能将CNO设为外键呢 求解!!
ID INT(8) PRIMARY KEY UNIQUE NOT NULL AUTO_INCREMENT,
SNO INT(8) NOT NULL,
CNO INT(4) NOT NULL,
LAST_TIME DATE,
TIMES INT(4) DEFAULT 1,
GRADE FLOAT DEFAULT 0,
CONSTRAINT GRADE_SNO_FK FOREIGN KEY(SNO)
REFERENCES STUDENTINFO(SNO),
CONSTRAINT GRADE_CNO_FK FOREIGN KEY(CNO)
REFERENCES STUDENTINFO(CNO) );
在这之前已经在其他的表中定义了SNO,CNO 并且都是主键,然后执行以上报错 说不能创建此表
去掉红色字以后就可以创建了 为什么不能将CNO设为外键呢 求解!!
改成
CONSTRAINT GRADE_CNO_FK FOREIGN KEY(SNO,CNO)
REFERENCES STUDENTINFO(SNO,CNO)
外键一定是别的表的主键
CONSTRAINT GRADE_CNO_FK FOREIGN KEY(SON,CNO)
REFERENCES STUDENTINFO(SNO,CNO)
ID INT(8) UNIQUE NOT NULL AUTO_INCREMENT,
SNO INT(8) NOT NULL,
CNO INT(4) PRIMARY KEY NOT NULL,
LAST_TIME DATE,
TIMES INT(4) DEFAULT 1,
GRADE FLOAT DEFAULT 0,
CONSTRAINT GRADEINFO_SNO_FK FOREIGN KEY(SNO)
REFERENCES STUDENTINFO(SNO),
CONSTRAINT GRADEINFO_CNO_FK FOREIGN KEY(CNO)
REFERENCES STUDENTINFO(CNO));
CREATE TABLE STUDENTINFO (
SNO INT(8) PRIMARY KEY NOT NULL,
CNO INT(4) UNIQUE NOT NULL
);
LZ 试试