Prisma 使用复合键删除多对多关系

Ben*_*nni 2 mysql prisma prisma2

我这里有这个架构:

model label {
  title         String          @id @db.VarChar(16)
  color         String          @db.VarChar(16)
  labelplaylist labelplaylist[]
}

model labelplaylist {
  playlistId Int
  labelId    String   @db.VarChar(16)
  label      label    @relation(fields: [labelId], references: [title])
  playlist   playlist @relation(fields: [playlistId], references: [id])

  @@id([playlistId, labelId])
  @@index([labelId], name: "labelId")
}

model playlist {
  id              Int             @id @default(autoincrement())
  createdAt       DateTime?       @default(now()) @db.DateTime(0)
  title           String          @db.VarChar(100)
  labelplaylist   labelplaylist[]

  @@index([userId], name: "userId")
}
Run Code Online (Sandbox Code Playgroud)

我只想删除标签和播放列表之间的关系。我尝试这样做:

const deleteRelation = await prisma.labelplaylist.delete({
    where: {
        playlistId_labelId: 
    },
})
Run Code Online (Sandbox Code Playgroud)

我有标签和播放列表表的主键,但我不知道如何获取主键=> playlistId_labelId。

谢谢你帮忙。

Tas*_*mam 10

这是使用组合键查询的语法

    const deleteRelation = await prisma.labelplaylist.delete({
        where: {
            playlistId_labelId: {
                playlistId: playListIdVariable, //replace with appropriate variable
                labelId: labelIdVariable, //replace with appropriate variable
            },
        },
    });
Run Code Online (Sandbox Code Playgroud)

您可以在 Prisma 文档中CRUD 参考指南通过复合 ID 或复合唯一标识符获取记录小节中阅读更多信息。此参考显示读取数据,但删除和更新的条件也类似。where