【问题标题】:Increment a field to a unique integer when a field updates in Prisma当 Prisma 中的字段更新时,将字段增加到唯一整数
【发布时间】:2022-05-24 10:39:03
【问题描述】:

在我的 Prisma 架构中,我有一个如下所示的模型:

model Document {
  id                      String   @id @default(uuid())
  createdAt               DateTime @default(now())
  updatedAt               DateTime @updatedAt
  draft                   Boolean  @default(true)
  publishedDocumentNumber Int?     @unique()
  text                    String?
}

创建每个文档时,它处于draft 模式,值设置为true。在正式发布之前,它没有publishedDocumentNumber。当我发布文档时,我会像这样更新草稿值:

prisma.draft.update({
  where: {
    id: req.body.id,
  },
  data: {
    draft: false,
  }
});

由于本文档不再是草稿,我想安全地将 publishedDocumentNumber 值自动递增到之前发布的 documentpublishedDocumentNumber 值 + 1。我不想做 @987654328 @ 因为如果同时发布两个文档(竞争条件),我可能会意外地发生冲突,并且它们必须是唯一的。

有没有更好的方法来安全地做到这一点?

【问题讨论】:

  • 这在数据库级别可能更容易做到。您能否提及您正在使用的数据库?
  • @TasinIshmam 我正在使用 Postgres

标签: prisma


【解决方案1】:

尝试使用serialsmallserial,如the documentation 中所述

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-05
    • 2011-07-22
    • 1970-01-01
    • 2012-03-09
    • 1970-01-01
    • 1970-01-01
    • 2021-04-16
    • 2012-05-05
    相关资源
    最近更新 更多