无法向现有表添加外键

Ngu*_*ằng 2 mysql sql foreign-keys

我无法将外键添加到我的现有表中。publisher_id我想将表games引用中的外键添加到publishers( publisher_id)。

但是当运行下面的sql时,它说:

源列和目标列必须具有相同的数据类型,目标列上必须有索引,并且引用的数据必须存在。无法添加或更新子行:外键约束失败 ( vngarena.com. #sql-818_1b1, CONSTRAINT #sql-818_1b1_ibfk_2FOREIGN KEY ( publisher_id) REFERENCES publishers( publisher_id) ON DELETE CASCADE ON UPDATE CASCADE

sql 是:

更改表games
添加外键 ( publisher_id) 引用publishers( publisher_id) 删除级联更新级联;

这是我的数据库的图表:

在此输入图像描述

更多信息:
- 表games有两条记录
- 表games有其他外键引用表gamecats( gamecat_id)
- 表gamecats有两条记录
- 表publishers没有记录

Ste*_*ens 5

如果存在任何违反关系的现有数据,您需要在添加密钥之前清理它。

[编辑]

编辑后:桌面游戏中的publisher_id正在publishers表中查找匹配项。添加 ID 与游戏表中的内容相匹配的发行商。