当前位置:数据库 > MySQL >>

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语句怎么写

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,