我在和Nest JS一起使用Prisma时,偶然发现了一个问题:

我有一个Picklist实体,其中包含可用于前端的不同Picklist.此外,我有一个Picklist Values实体,它包含每个Picklist可用的值.我目前面临的问题是,每个Picklist只能有一个默认的Picklist值和多个非默认的其他值.目前,我只能 for each Picklist设置2个Picklist值--一个是默认值,一个是无默认值.

我怎么才能做到这一点呢?

领料单实体:

model Picklist {
  id Int @id @default(autoincrement())

  createdAt DateTime @default(now())
  updatedAt DateTime @updatedAt

  picklistName    String @db.VarChar(255)
  picklistApiName String @db.VarChar(255)

  picklistValues PicklistValues[]

  @@map("Picklists")
}

帖子主题:Re:Колибри

model PicklistValues {
  id Int @id @default(autoincrement())

  createdAt DateTime @default(now())
  updatedAt DateTime @updatedAt

  value         String  @db.VarChar(255)
  apiName       String  @db.VarChar(255)
  defaultValue  Boolean
  inactiveValue Boolean

  picklistId Int

  picklist      Picklist @relation(fields: [picklistId], references: [id])

  @@unique([picklistId, defaultValue])
}

我知道问题出在@@unique([picklistId, defaultValue]),但我还没有找到解决办法来改变它.

推荐答案

Prisma目前不支持创建部分索引.在这方面,有一个开放的issue.您还可以将您的用例添加到待定问题中.您还可以创建自定义migration并手动添加部分索引的SQL代码.

Mysql相关问答推荐

用于搜索从各种表中获得的结果的查询

如何跨多个产品查找相同时间范围的数据集

为什么MySQL不考虑在联接中使用(JSON)函数索引,而考虑在生成的列上使用索引?

用于将具有多个状态更改日期列的单行转换为具有状态和时间戳的多行的SQL查询

插入时发生日期时间字段溢出错误

最终的自联表是如何记住关联的呢?

错误 2020 (HY000): 数据包大于 'max_allowed_pa​​cket' 字节,docker 容器内出现 mysql 错误

如何在Mysql中使用With和Values

MySQL:根据条件查找某些用户的行位置

插入二进制数据会导致Data too long for column...

Django中的MYSQL查询等效

当查询 MySQL 的 goroutine 过多时,Go 会出现panic

MYSQL LOAD DATA INFILE 语句适用于工作台,但不适用于 python

MySQL INSERT IF(自定义 if 语句)

在 spring-boot jpa hibernate 中 >4<24 后与 Db 的连接终止

如何通过一个查询批量更新 mysql 数据?

为什么数据库行元组中的整数具有L后缀?

如何在特定数据库中创建表?

计算执行的查询数

WHERE 子句中的条件顺序会影响 MySQL 性能吗?