使用Prisma显式多对多关联连接已有记录时遇错求助
问题解决:Prisma显式多对多表创建关联报错
问题原因
你用connect操作是尝试关联已经存在的UserCat记录,但实际上你要创建新的关联条目,所以这个操作不适用,导致报错:
在一对多关系'UserToUserCat'上执行connect操作后,期望连接1条记录,但实际找到0条。
解决方案
要在显式多对多中间表创建新条目,应该使用create操作,而不是connect。修改后的代码如下:
await prisma.user.update({ where: { id: newUserCat.userId }, data: { cats: { create: { cat: { connect: { id: newUserCat.catId } }, // 若需设置UserCat的name字段,可在此添加 // name: "自定义名称" } } } })
或者直接操作UserCat模型创建关联,这种方式更直观:
await prisma.userCat.create({ data: { userId: newUserCat.userId, catId: newUserCat.catId, // 可选:设置name字段 // name: "自定义名称" } })
补充说明
connect仅用于关联已存在的中间表记录,不适用于创建新关联- 通过
create嵌套connect,可以在创建中间表条目的同时关联已存在的User和Cat记录 - 直接操作中间表模型是显式多对多场景下创建关联最直接的方式
内容的提问来源于stack exchange,提问作者Aniki219
相关产品推荐
相关产品推荐

