You need to enable JavaScript to run this app. Prisma查询自关联关系计数报「表名重复指定」错误如何解决?
优惠活动
大模型
产品
解决方案
定价
更多

Prisma查询自关联关系计数报「表名重复指定」错误如何解决?

Prisma 2 自关联关系计数报错「表名User被多次指定」解决方案

问题原因

你使用的Prisma 2版本中,selectRelationCount预览特性对隐式自关联多对多关系的统计支持存在缺陷,生成SQL查询时没有给重复引用的User表分配不同的别名,最终触发表名重复指定的报错。

解决方案

有两种可选方案:

方案1:升级Prisma版本

Prisma 3.11.0及以上版本已经修复了该问题,无需修改现有模型和查询代码,升级版本后即可正常执行。

方案2:保留Prisma 2版本,将隐式多对多改为显式多对多

手动定义关联中间表,避免Prisma生成SQL时重复引用User表:

  1. 修改模型定义
model User {
  id        String    @id @default(cuid())
  following Follows[] @relation("Follower")
  followers Follows[] @relation("Following")
}

// 新增显式多对多中间表
model Follows {
  followerId  String
  followingId String
  follower    User   @relation("Follower", fields: [followerId], references: [id], onDelete: Cascade)
  following   User   @relation("Following", fields: [followingId], references: [id], onDelete: Cascade)

  @@id([followerId, followingId])
}
  1. 执行prisma migrate dev生成迁移并同步到数据库
  2. 原有查询代码无需修改,直接运行即可正常获取粉丝和关注数。

内容的提问来源于stack exchange,提问作者G.G.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 17:42:04