首页 > 解决方案 > 无法将外键约束添加到我的表

问题描述

我正在尝试设置 FK,但出现错误

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

在此处输入图像描述

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

#1215 - 无法添加外键约束

是不是因为Artists表中Artist不是PK,不能作为PK使用?关于如何链接表格的任何其他建议?

标签: mysqlsql

解决方案


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

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

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

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


推荐阅读