创建外键不成功
来源:5-6 外键约束的使用
SPKK
2018-04-03 16:20:25
代码如下:
CREATE TABLE news_cate(
id TINYINT UNSIGNED AUTO_INCREMENT KEY COMMENT '编号',
cateName VARCHAR(50) NOT NULL UNIQUE COMMENT '分类名称',
cateDesc VARCHAR(100) NOT NULL DEFAULT '' COMMENT '分类描述'
)ENGINE=InnoDB CHARSET=UTF8;
CREATE TABLE news(
id INT UNSIGNED AUTO_INCREMENT KEY COMMENT '编号',
title VARCHAR(100) NOT NULL UNIQUE COMMENT '新闻标题',
content VARCHAR(100) NOT NULL COMMENT '新闻内容',
cateId TINYINT NOT NULL COMMENT '新闻所属分类编号',
FOREIGN KEY(cateId) REFERENCES news_cate(id)
)ENGINE=InnoDB CHARSET=UTF8;
当创建news表时弹出ERROR 1215 (HY000): Cannot add foreign key constraint,
WAMP环境,MySQL 5.7.19,求助求助
1回答
SPKK
提问者
2018-04-03
经查阅资料,发现外键关联时类型要一致,news_cate中的id是TINY且UNSIGNED,news中的cateId只是TINY,怀疑和这个有关。
验证了在cateId类型中增加UNSIGNED,可创建并且无报错:
CREATE TABLE news(
id INT UNSIGNED AUTO_INCREMENT KEY COMMENT '编号',
title VARCHAR(100) NOT NULL UNIQUE COMMENT '新闻标题',
content VARCHAR(100) NOT NULL COMMENT '新闻内容',
cateId TINYINT UNSIGNED NOT NULL COMMENT '新闻所属分类编号',
FOREIGN KEY(cateId) REFERENCES news_cate(id)
)ENGINE=InnoDB CHARSET=UTF8;
是否为版本原因或者是开发环境原因所致呢?为何视频中的可以?
相似问题