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

如何在Prisma Client中通过ID列表批量删除数据库记录

Prisma Client 批量按ID删除的正确实现

你现有写法不生效的核心原因:equals 操作符仅用于匹配单个标量值,无法匹配值列表,你需要使用in操作符完成IN查询的需求,正确写法如下:

const idsToDelete = [5, 29, 255]

await prisma.post.deleteMany({
    where: {
        id: {
            in: idsToDelete
        }
    }
})

特性说明

  • 该写法是Prisma标准的通用过滤语法,底层会自动生成你期望的DELETE ... WHERE id IN (x,y,z) 形式的SQL语句
  • 完全符合你的限制要求:
    • 仅发起单次数据库请求,不需要批量调用独立delete的promise
    • 不属于数据库专属特性,所有Prisma支持的关系型数据库(PostgreSQL、MySQL、SQLite等)均支持该语法,MongoDB环境下也能自动适配为对应查询逻辑
    • 无需编写任何原生SQL,完全基于Prisma Client标准API实现

你提到的Scalar List Filters和当前场景不匹配:Scalar List Filters是针对字段本身为数组类型的场景设计的操作符,例如你有user.tags String[]这类数组字段时才需要用到,你当前的场景是用值列表匹配单个标量类型的id字段,不需要用到该特性。

内容的提问来源于stack exchange,提问作者Nate Vaughan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 02:45:05