【问题标题】:Cannot add a foreign key constraint MySQL无法添加外键约束 MySQL
【发布时间】:2021-11-05 03:29:31
【问题描述】:

我的数据库中有一个名为 "countries" 的表和另一个名为 "country_continents" 的表。我想在 countries 中创建我的 continent_id 列,一个 外键 引用 country_continentsid,但是我收到一条错误消息。这是创建外键的SQL和错误:

ALTER TABLE countries
    ADD CONSTRAINT fk_continent_id
    FOREIGN KEY (continent_id)
    REFERENCES country_continents(id);

错误: #1215 - 无法添加外键约束

起初,我得到的是:

“错误:关系功能被禁用”

所以我运行了命令 ALTER TABLE countries ENGINE=InnoDB;ALTER TABLE country_continents ENGINE=InnoDB;,但现在我得到了 #1215 错误。

这是“country_continents”的结构:

这是“国家”的结构:

对发生的事情有任何想法吗?提前致谢。

【问题讨论】:

  • country_continents(id) 被声明为主键了吗?
  • 它们是相同的数据类型吗?请分享表格定义。 (stackoverflow.com/questions/16969060/…)
  • @GordonLinoff 是的,它是主键。
  • @Akina 表是从 Laravel 中迁移创建的,所以我没有 CREATE TABLE。
  • 执行SHOW CREATE TABLE tablename;并提供输出。

标签: mysql sql database phpmyadmin


【解决方案1】:

我认为错误是由于:

在您的国家表中,continent_id 不是未签名。 编辑它并告诉我它是否有效

【讨论】:

    猜你喜欢
    • 2013-03-10
    • 1970-01-01
    • 1970-01-01
    • 2014-07-27
    • 2015-02-04
    相关资源
    最近更新 更多