如何使用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
相关产品推荐
相关产品推荐

