【问题标题】:Update multiple tables in one query在一个查询中更新多个表
【发布时间】:2021-01-15 02:15:23
【问题描述】:

我找不到关于 Prisma 文档的任何相关信息,也找不到关于这个问题的 SO。

我的相关架构如下所示:

model User {
  id             Int       @default(autoincrement()) @id
  createdAt      DateTime  @default(now())
  updatedAt      DateTime  @updatedAt
  firstName      String?
  lastName       String?
  email          String    @unique
  hashedPassword String?
  role           String    @default("user")
  sessions       Session[]
  profile        Profile?
}

model Profile {
  id                 Int       @default(autoincrement()) @id
  aboutMe            String?
  location           String?
  profession         String?
  user               User      @relation(fields:[userId], references: [id])
  userId             Int
}

我想更新两个表中的多个列,但是无法让突变在 Prisma 中工作。所以,这就是我的突变现在的样子:

 ...
  const {aboutMe, location, profession, firstName, lastName } = inputs;
  const profile = await db.user.update({
    where: { id: ctx.session!.userId },
    data: {
      profile: {
        update: {
          aboutMe,
          location,
          profession,
        },
      },
    },
  });
  const user = await db.user.update({
    where: { id: ctx.session!.userId },
    data: {
      firstName,
      lastName,
    },
  });
...

如您所见,我有两个突变,是否可以用一个突变更新多个表?

谢谢。

【问题讨论】:

    标签: javascript database prisma mutation prisma2


    【解决方案1】:

    这应该可行:

    const profile = await db.user.update({
        where: { id: u.id },
        data: {
          firstName: 'name',
          lastName: 'name',
          profile: {
            update: {
              aboutMe: 'aboutMe',
              location: 'aboutMe',
              profession: 'aboutMe',
            },
          },
        },
        include: { profile: true },
      })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-20
      • 2019-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-13
      • 1970-01-01
      相关资源
      最近更新 更多