mysql - 无法将外键约束添加到我的表
问题描述
我正在尝试设置 FK,但出现错误
我的数据类型与参考表相同。我的艺术家表包含所有名称,我为艺术家图像创建了另一个表。表:
ALTER TABLE Artist_Images
ADD CONSTRAINT FK_Artist_Images_Artist
FOREIGN KEY (Artist)
REFERENCES Artists (Artist)
#1215 - 无法添加外键约束
是不是因为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
如果您得到任何行,则需要先解决该问题,然后才能创建外键。
推荐阅读
- javascript - 如何选择具有动态 ID 的父元素的嵌套子元素?
- javascript - 如何防止退格键触发 onkeyup 事件?
- php - LARAVEL 中的一个对多关系 Foreach 未定义变量
- rcpp - 将 C++ 函数用作由导出的 Rcpp 函数调用的另一个 C++ 函数的参数
- java - 如何从另一个类的方法中获取变量值
- javascript - 我不明白 jQuery.data() 方法
- jquery - rails - jQuery 在加载时未定义,之后按预期工作
- arrays - 如何将语言别名添加到 highlightjs?
- algorithm - 如何对我的 Web 应用程序的帖子进行排名?
- graphql - 具有多对多关系的类型元素的 GraphQL 解析器