文档
演练
更新或插入

更新或插入记录

使用更新或插入来更新或创建记录,具体取决于它是否已经存在。

示例使用以下 Prisma 模式

model Post {
  id        String   @id @default(cuid())
  createdAt DateTime @default(now())
  updatedAt DateTime @updatedAt
  published Boolean
  title     String
  content   String?
  views     Int      @default(0)
}

更新或插入记录

使用 UpsertOne 查询文档,定义创建文档时要写入的内容,以及如果文档已存在则要更新的内容。

post, err := client.Post.UpsertOne(
  // query
  db.Post.ID.Equals("upsert"),
).Create(
  // set these fields if document doesn't exist already
  db.Post.Published.Set(true),
  db.Post.Title.Set("title"),
  db.Post.ID.Set("upsert"),
).Update(
  // update these fields if document already exists
  db.Post.Title.Set("new-title"),
  db.Post.Views.Increment(1),
).Exec(ctx)