mysql - 无法将外键约束添加到我的表中

标签 mysql sql

我正在尝试设置 FK,但收到错误

我的数据类型与引用表相同。我的艺术家表包含所有姓名,我为艺术家图像创建了另一个表。 表:

enter image description here

ALTER TABLE Artist_Images
    ADD CONSTRAINT FK_Artist_Images_Artist
    FOREIGN KEY (Artist)
    REFERENCES Artists (Artist)

#1215 - Cannot add foreign key constraint

是不是因为Artists表中Artist不是PK,不能作为PK?关于如何链接表格还有其他建议吗?

最佳答案

数据存在时无法创建外键的最常见原因之一是您尝试添加键的表中的列具有引用表中不存在的值。

在这种情况下,您可以通过运行以下查询来检查:

   SELECT i.Image, i.Artist FROM Artist_Images i
      LEFT JOIN Artists a on i.Artist = a.Artist
      WHERE a.Artist IS NULL

如果您收到任何行,则需要先解决该问题,然后才能创建外键。

关于mysql - 无法将外键约束添加到我的表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57503863/

相关文章:

php - 通过 php 将时间戳插入 MySql 数据库

mysql - 更新前触发检查值

mysql - 为什么 ON CASCADE DELETE 不起作用?

mysql - SQL 查询和错误子查询返回超过 1 个值

mysql - 如何访问子查询中的列?

php - MySQL/PHP/SugarCRM 调度

php - 如何从 MySQL 中检索 1 个随机行

php - 将不同的输入值插入一列 (MySQL)

sql - 重命名 PostgreSQL 中的多个列

php - 仅更新 1 行 While 循环错误