首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql错误150外键

问mysql错误150外键
EN

Stack Overflow用户
提问于 2011-02-26 08:33:02
回答 3查看 1.2K关注 0票数 0

每当我插入到表xxx中时:

代码语言:javascript
复制
alter table xxx 
add index FK68C3166C7B556202 (my_yyy_id), 
add constraint FK68C3166C7B556202 foreign key (my_yyy_id) references yyy (yyy_id)

...I get:

代码语言:javascript
复制
19:27:44,355 ERROR SchemaUpdate:212 - Unsuccessful: alter table xxx add index FK68C3166C7B556202 (my_yyy_id), add constraint FK68C3166C7B556202 foreign key (my_yyy_id) references yyy (yyy_id)
19:27:44,356 ERROR SchemaUpdate:213 - Can't create table 'mydb.#sql-2f1b_657' (errno: 150)

为什么?如何解决此问题?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-02-26 08:40:59

没有细节很难猜出哪里出了问题,但您可能会犯一些常见的错误: 1. yyy.yyy_id不是唯一键/主键

  1. yyy.yyy_id和xxx.my_yyy_id具有不同的类型(例如yyy_id unsigned int、xxx.my_yyy_id int)
票数 0
EN

Stack Overflow用户

发布于 2011-02-26 08:36:36

Documentation

如果MySQL从CREATE TABLE语句报告错误号1005,并且错误消息指向错误150,则表创建失败,因为没有正确形成外键约束。类似地,如果ALTER TABLE失败,并且它引用了错误150,这意味着对于被更改的表,外键定义的格式将不正确。

您需要提供有关您试图创建的外键约束的更多信息。

票数 0
EN

Stack Overflow用户

发布于 2011-02-26 08:44:21

您使用的是什么版本的MySQL?它会比4.1更早吗?

可以尝试在不添加外键的情况下创建索引吗?如果有效,请尝试添加外键。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5124212

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档