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

MySQL创建City表报Foreign key constraint is incorrectly formed错误怎么解决

问题原因

  • 创建City表定义外键时,引用State表没有指定所属的mydb schema,MySQL无法正确定位到已创建的mydb.State表,因此触发外键格式错误。
  • 你提前关闭的外键检查仅跳过外键关联数据的存在性校验,不会跳过外键关联的表/字段存在性、属性一致性校验。

修复方案

将City表外键定义部分的REFERENCES State (StateId)修改为REFERENCES mydb.State (StateId)即可,保持和State表关联Country表的引用格式一致。

修正后完整的City表建表语句

DROP TABLE IF EXISTS `mydb`.`City` ;

CREATE TABLE IF NOT EXISTS `mydb`.`City` (
  `CityId` SMALLINT NOT NULL,
  `CityName` VARCHAR(45) NULL,
  StateId SMALLINT NOT NULL,
  PRIMARY KEY (CityId),
    INDEX `fk_City_State1_idx` (StateId ASC),
  CONSTRAINT `fk_City_State1`
    FOREIGN KEY (StateId)
    REFERENCES `mydb`.`State` (`StateId`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;

其他可能触发该报错的常见场景

  • 外键字段和被引用的主键/唯一键字段的类型、长度、字符集、排序规则不一致
  • 被引用的表/字段不存在,或者名称拼写错误
  • 被引用的字段不是主键或者未设置唯一索引

内容的提问来源于stack exchange,提问作者Satyaki Dasgupta

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 04:24:06