You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL外键约束错误(errno:150)求助:创建showing表时出错

搞定MySQL Errno:150 外键约束错误

嘿,我来帮你搞定这个MySQL外键的问题!你碰到的Errno:150和“Foreign key constraint is incorrectly formed”错误,其实大多是几个常见的小问题导致的,结合你已经创建的Complex表,我给你列几个排查方向:

  • 外键字段与关联主键必须完全匹配
    你创建的Complex表主键是varchar(50)类型,那showing表中用来关联它的外键字段,必须和这个类型完全一致——包括字段类型、长度,甚至字符集和排序规则都不能差。比如不能用varchar(40)或者char(50),哪怕只是长度少了10,都会触发这个错误。

  • 确保关联表已经提前创建
    要先创建Complex表,再创建showing表哦!MySQL没法给一个还不存在的表添加外键约束,如果顺序搞反了,肯定会报错。

  • 确认关联字段是主键/唯一索引
    这点你已经做对啦——Complex表的name字段是主键,满足外键关联的要求。要是你以后用其他字段做关联,记得要给那个字段加唯一索引才行。

  • 检查表引擎是否支持外键
    只有InnoDB引擎支持外键约束,MyISAM是不支持的。你可以用SHOW CREATE TABLE Complex;命令查看Complex表的引擎,如果是MyISAM的话,得改成InnoDB才能创建外键。

  • 避免外键约束命名重复
    如果之前已经创建过同名的外键约束,也会触发这个错误,不过这个情况相对少见,你可以先排查前面几个点。

给你一个符合要求的showing表创建示例,你可以参考:

CREATE TABLE showing (
    showing_id INT AUTO_INCREMENT PRIMARY KEY,
    complex_name VARCHAR(50) NOT NULL,
    movie_title VARCHAR(100) NOT NULL,
    show_time DATETIME NOT NULL,
    -- 其他你需要的字段
    FOREIGN KEY (complex_name) REFERENCES Complex(name)
);

内容的提问来源于stack exchange,提问作者Liam Strathdee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:47:06