【发布时间】:2014-02-28 19:33:59
【问题描述】:
我正在创建一个小型数据库,以便掌握 MySQL 和 SQL 的一般知识。
我不确定我做错了什么,但我想我会发布我的代码,以防万一问题是我没有抓住的语法问题。
CREATE TABLE student(
ID varchar(5) NOT NULL,
name varchar(20) NOT NULL,
dept_name varchar(20),
tot_cred numeric(3,0),
PRIMARY KEY(ID),
FOREIGN KEY(dept_name)
REFERENCES department
ON UPDATE CASCADE
ON DELETE CASCADE)
ENGINE = InnoDB;
我已经创建了包含 dept_name 主键的“部门”表。在使用外键约束时,我尝试在不使用 ENGINE=InnoDB 的情况下继续,但显然 - 不成功。
有人可以向我解释为什么 MySQL 向我抛出错误 1005 errno 150 以及我应该如何使用最简单的术语来解决它?
【问题讨论】:
-
它引用了“部门”中的哪一列?是否与“ID”具有相同的数据类型?
-
在您的外键更改对引用部门(id)的引用
标签: mysql foreign-keys innodb