我有两个表,用户名被称为不同的东西,但它们是通过外键连接的:表用户有一个列用户名表avatars有一个列ownerUsername
我被这个外键问题困住了并且更新了一张记录。最近,我重新创建了外键,使其具有更新级联,但在尝试更新时仍然会出现此错误:
ForeignKeyConstraintError SequelizeForeignKeyConstraintError:在表上插入或更新"avatars“违反了外键约束"User_OwnerUsername_fk”
报告还进一步说明如下:
详细信息: Key (ownerUsername)=(theSunBurn)不在表"users“中
我不知道这有什么问题。是因为用户表中的'username‘字段在avatars表中称为'ownerUsername’吗?还是因为我正在将avatars表中的ownerUsername更新为“theSunBurn”,但是在user表中,它仍然是旧的用户名吗?另外,在用外键更新字段时,是否应该同时更新两个表?
发布于 2020-11-22 08:05:57
根据我的理解,使用的外键不是Id,而是可更改的密钥,即“用户名”。正如您所问的,问题不在于'avatars‘表中列的名称。问题是,当我们用未作为主键出现的值(将ownerUsername更新为'theSunBurn')更新外键时,它将显示您收到的错误。
您可以使用ID而不是UserName作为外键,或者当您想在avatar中更新时,首先在用户中创建一个条目(如果还没有出现)。
发布于 2021-06-22 08:24:16
在我的例子中,问题在于我使用的是一个表中的主键,该表中没有记录。因此,我创建了新条目,然后使用它并进行了修复。
https://stackoverflow.com/questions/64949805
复制相似问题