栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

MySQL外键错误1005错误150

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MySQL外键错误1005错误150

创建外键约束时,MySQL在引用表和被引用表上都需要一个可用的索引。如果不存在引用表上的索引,则会自动创建索引,但需要手动创建引用表上的索引(Source)。您的似乎丢失了。

测试用例:

CREATE TABLE tbl_a (    id int PRIMARY KEY,    some_other_id int,    value int) ENGINE=INNODB;Query OK, 0 rows affected (0.10 sec)CREATE TABLE tbl_b (    id int PRIMARY KEY,    a_id int,    FOREIGN KEY (a_id) REFERENCES tbl_a (some_other_id)) ENGINE=INNODB;ERROR 1005 (HY000): Can't create table 'e.tbl_b' (errno: 150)

但是,如果我们在上添加索引

some_other_id

CREATE INDEX ix_some_id ON tbl_a (some_other_id);Query OK, 0 rows affected (0.11 sec)Records: 0  Duplicates: 0  Warnings: 0CREATE TABLE tbl_b (    id int PRIMARY KEY,    a_id int,    FOREIGN KEY (a_id) REFERENCES tbl_a (some_other_id)) ENGINE=INNODB;Query OK, 0 rows affected (0.06 sec)

在大多数情况下,这通常不是问题,因为被引用字段通常是被引用表的主键,并且主键会自动索引。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/387958.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号