You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Prisma调用findUnique报错ConversionError:数值6484250528无法放入INT4

解决Prisma+PostgreSQL查询时的INT4溢出错误

问题根源

你传入的userId值6484250528超出了PostgreSQL中INT4(32位有符号整数)的取值上限——32位有符号整数的最大值是2147483647,你的数值远大于这个范围,导致类型转换失败抛出错误。

解决办法

把Prisma Schema里的userId和chatId类型从Int改为BigInt,BigInt对应PostgreSQL的INT8(64位整数),可以容纳更大的数值范围:

修改后的schema.prisma:

datasource db {
  provider = "postgresql"
  url      = env("DATABASE_URL")
}

model User {
  id             Int      @id @default(autoincrement())
  userId         BigInt   @unique
  chatId         BigInt
}

后续操作步骤

  1. 修改完成Schema后,执行迁移命令更新数据库表结构:
npx prisma migrate dev --name update-user-id-type
  1. 重新生成Prisma Client,确保代码中的类型与数据库同步:
npx prisma generate
  1. 原查询代码无需修改,可直接使用:
const currentUser = await prisma.user.findUnique({ where: { userId: 6484250528} })

注:如果数据库中已有数据,PostgreSQL会自动完成INT4到INT8的类型转换,不会丢失现有数据。

内容的提问来源于stack exchange,提问作者yong ho

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 02:35:08