Prisma (ORM) -获取插入行的索引值



我正在尝试使用Prisma (ORM)来管理我的MySQL数据库。

当我直接使用MySQL时,我可以在插入命令后运行mysql_insert_id()以获得我刚刚插入的auto_increment索引值。

如何在Prisma中实现这一点?insert的返回值是受影响的行,而不是索引。

编辑

如果您使用prisma.create(),它将返回具有新id的对象。

但是如果您使用prisma.createMany(),它只返回受影响行的计数?

有人能解释一下这背后的设计吗?

您需要使用Raw Query来执行返回索引值的插入语句。

来自文档:

使用$queryRaw返回实际记录

使用$executeRaw返回受影响行的计数

所以你需要使用queryRaw方法。

可以这样使用:

const now = new Date();
const createdRecord = await this.prisma.post.create({
data: {
title: input.title!,
content: input.content!,
created_at: now,
updated_at: now
}
})
// now you can access id of created record by createdRecord.id
const id = createdRecord.id
// ...whatever you want with id

相关内容

  • 没有找到相关文章

最新更新