如何从满足多个条件的数据库中删除?

Mat*_*sen 5 database prisma

我正在尝试使用 Prisma 删除数据库中的一行,仅当满足两个条件时才删除它,slug并且userId

这就是我尝试做的:

const deleteComment = await prisma.favorites.delete({
      where: {
        slug: slug,
        userId: userId,
      },
    });

Run Code Online (Sandbox Code Playgroud)

这是我在 schema.prisma 中的模型:

model Favorites {
  id          Int     @id @default(autoincrement())
  slug        String  @db.VarChar(128)
  contentType String? @db.VarChar(128)
  userId      String
  user        User?   @relation(fields: [userId], references: [id])
}
Run Code Online (Sandbox Code Playgroud)

如果我删除它,userId: userId,它会删除包含相同 slug 的所有行,如果多个用户添加了相同的 slug,这并不理想。

当两个条件都满足时,如何删除一行?

som*_*ser 13

如果您没有充分指定属性来标识唯一行(由架构保证),则应该使用deleteMany而不是delete.

await prisma.favorites.deleteMany({ where: { slug: slug, userId: userId } });
Run Code Online (Sandbox Code Playgroud)