行__的ERROR 1005(HY000):无法创建表'doanv.ENROLLED'(错误号:150)再见
表 STUDENT
, COURSE
, PROF
已成功创建 .
无法创建表 ENROLLED
和 TEACHING
.
我做错了什么?
CREATE TABLE STUDENT
(sID INTEGER PRIMARY KEY NOT NULL,
sFName VARCHAR(20),
sLName VARCHAR(20));
CREATE TABLE COURSE
(cID VARCHAR(20) PRIMARY KEY NOT NULL,
cName VARCHAR(20),
cr INTEGER);
CREATE TABLE PROF
(pID INTEGER PRIMARY KEY NOT NULL,
pFName VARCHAR(20),
pLName VARCHAR(20));
CREATE TABLE ENROLLED
(sID INTEGER NOT NULL,
cID VARCHAR(20) NOT NULL,
PRIMARY KEY (sID, cID),
FOREIGN KEY (sID) REFERENCES STUDENT,
FOREIGN KEY (cID) REFERENCES COURSE);
CREATE TABLE TEACHING
(pID INTEGER NOT NULL,
cID VARCHAR(20) NOT NULL,
PRIMARY KEY (pID, cID),
FOREIGN KEY (pID) REFERENCES PROF,
FOREIGN KEY (cID) REFERENCES COURSE);
3 回答
来自MySQL - FOREIGN KEY Constraints Documentation:
您在示例代码中省略了外键引用;试试这个:
在MySQL中,您需要指定要引用的列 . 你可以在SQL的其他一些实现中省略 (sID) 和 (cID) .
外键引用需要引用的键: