mysql外键问题。跪求易做图指教。。 Can't create table 'test.homework' (errno: 150)问题
表一:
CREATE TABLE SUBJECT(
ID BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,#逻辑主键
SUBJECT VARCHAR(20) DEFAULT NULL,#课程
PRIMARY KEY(ID)
)TYPE=INNODB;
表二:
CREATE TABLE homework(
ID BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
subjectID BIGINT(20),
content TEXT,
diffculty INT(4) UNSIGNED DEFAULT 0,
PRIMARY KEY(ID),
FOREIGN KEY(subjectID) REFERENCES SUBJECT(ID)
)TYPE=INNODB;
表一能建好,但是建表二的时候就报了:
Error Code : 1005
Can't create table 'test.homework' (errno: 150)
刚学mysql很多地方都不懂。
求高手指教,感激不尽。
追问:Error Code : 1005
Can't create table 'test.#sql-5c0_1' (errno: 150)
照着你做的,但是还是报这个。。
是怎么回事呢?
答案:应该这样做,做法如下:
表一:
CREATE TABLE SUBJECT(
ID BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,#逻辑主键
SUBJECT VARCHAR(20) DEFAULT NULL,#课程
PRIMARY KEY(ID)
)TYPE=INNODB;
表二:
CREATE TABLE homework(
ID BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
subjectID BIGINT(20),
content TEXT,
diffculty INT(4) UNSIGNED DEFAULT 0,
PRIMARY KEY(ID)
)TYPE=INNODB;
###以下建立外键:
ALTER TABLE homework ADD CONSTRAINT FK_HOMEWORK_2_SUBJECT FOREIGN KEY (subjectID)
REFERENCES SUBJECT (ID) ON DELETE RESTRICT ON UPDATE RESTRICT;
其中“FK_HOMEWORK_2_SUBJECT ”事故外键的名称,你可以随便起,一般都是用具有描述意义的名称
上一个:mysql 数据库 关联 查询
下一个:这个mysql语句怎么写