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

如何使用Prisma的$executeRaw插入数据并返回插入的记录?

解决Prisma执行INSERT...RETURNING无法获取插入记录的问题

你用$executeRaw只会返回受影响的行数,这是它的设计特性——专门用于执行数据变更操作并返回行数,哪怕加了RETURNING *也不会返回记录。要获取插入的实际记录,你需要换成$queryRaw方法,它是用来获取查询结果的,支持解析RETURNING子句返回的数据。

修改后的代码如下:

const insertedRecords = await prismaClient.$queryRaw(`
INSERT INTO table1 (name, place, animal, thing)
SELECT * FROM table2
WHERE place = 'California'
RETURNING *;
`);
console.log(insertedRecords); // 这里会输出插入的所有记录数组

核心区别:

  • $executeRaw:执行CREATE/INSERT/UPDATE/DELETE等变更语句,返回受影响的行数
  • $queryRaw:执行查询类语句(包括带RETURNING的变更语句),返回结果集

内容的提问来源于stack exchange,提问作者Vinit Khandelwal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 23:05:19