ForeignKeyConstraintError [SequelizeForeignKeyConstraintError]:在 table "avatars" 上插入或更新违反了外键约束

ForeignKeyConstraintError [SequelizeForeignKeyConstraintError]: insert or update on table "avatars" violates foreign key constraint

我有两个 table,用户名叫法不同,但它们是通过外键连接的: table 用户有一列用户名 table avatars 有一列 ownerUsername

我被这个外键问题困住了,正在更新记录。我最近重新制作了外键以具有 UPDATE CASCADE,但在尝试更新时仍然出现此错误:

ForeignKeyConstraintError [SequelizeForeignKeyConstraintError]:插入或更新table“化身”违反外键约束“User_OwnerUsername_fk”

它还在下面进一步说明:

详细信息:table“用户”

中不存在密钥 (ownerUsername)=(theSunBurn)

我不确定这里有什么问题。是因为用户table中的'username'字段在头像table中被称为'ownerUsername'吗?或者是因为我将头像 table 中的 ownerUsername 更新为 'theSunBurn',但在用户 table 中它仍然是旧用户名?另外,当用外键更新字段时,我是否应该以某种方式同时更新两个 tables?

据我了解,使用的外键不是 Id,而是一个 mutable 键,即 'user name'。 您所问的问题与 'avatars' table 中的列名称无关。问题是当我们用一个不作为主键存在的值(将 ownerUsername 更新为 'theSunBurn')更新外键时,它会显示您收到的错误。

您可以使用 ID 而不是 UserName 作为外键 要么 每当你想更新头像时,首先在用户

中创建一个条目(如果还没有)

在我的例子中,问题是我使用的是 table 中的主键,其记录不存在于 table 中。所以我创建了新条目然后使用它并修复了它。