我想在postgres中为一个表做一个批量upsert,因为prisma的API不支持这个,所以我不得不使用$executeRaw
,但是我在如何正确地使用Prisma.join
和Prisma.sql
将数据插入到模板标签中时遇到了一些困难。
这篇文章似乎指出了一个可能的解决方案:https://github.com/prisma/prisma/discussions/15452#discussioncomment-3737632,但是Prisma.sql
的函数签名是export declare function sqltag(strings: ReadonlyArray<string>, ...values: RawValue[]): Sql;
,这表明它接受两个 * 数组 * 而不是一个字符串。
这是我目前掌握的情况:
async function batchUpsertPosts(posts){
await prisma.$executeRaw`INSERT INTO Posts (
feedDomain,
postId,
title,
score,
)
VALUES (), (), ()--... and so on with posts
ON CONFLICT ("feedDomain","postId") DO UPDATE SET score = excluded.score`
}
1条答案
按热度按时间bvhaajcl1#
好吧,我想我已经想明白了。
所以我只需要用途: