我正在尝试使用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