NodeJS 我有两个模型在棱镜一对多关系,但我想插入数据到第二个模型如何做到这一点?

iibxawm4  于 2022-12-12  发布在  Node.js
关注(0)|答案(1)|浏览(358)

我在棱镜中有两个模型--一个 Package 模型和第二个变异模型,它们是一对多的关系

model Package {
  id Int @id @default(autoincrement())
  name String
  title String
  vocavive_user vocavive_user[]
  variations Variation[]
  createdAt DateTime @default(now())
  updatedAt DateTime @updatedAt
}

model Variation {
  id Int @id @default(autoincrement())
  expiration Int
  bdt Int 
  discount_bdt Int @default(00)
  usd Int @default(00)
  discount_usd Int @default(00)
  status Boolean @default(false)
  packages Package? @relation(fields: [package_id], references: [id], onDelete: Cascade)
  package_id Int?
  createdAt DateTime @default(now())
  updatedAt DateTime @updatedAt
}

我可以在同时插入 Package 数据和变异数据时插入数据变异。

exports.createPackage = catchAsync(async (req, res) => {
  const {
    name,
    title,
    expiration,
    bdt,
    discount_bdt,
    usd,
    discount_usd,
    status,
  } = req.body;
  const newPackage = await prisma.package.create({
    data: {
      name: name,
      title: title,
      variations: {
        create: {
          expiration,
          bdt,
          discount_bdt,
          usd,
          discount_usd,
          status,
        },
      },
    },
    include: {
      variations: true,
    },
  });
  console.log(newPackage);
  res.status(200).json(newPackage);
});

但在我的情况下,我只需要将值插入到变量表中..我尝试了以下操作

exports.createVariation = catchAsync(async (req, res) => {
  const newVariation = await prisma.variation.create({
    data: {
      expiration: req.body.expiration,
      bdt: req.body.bdt,
      package_id: req.body.package_id,
    },
  });
  res.status(200).json(`variation Created Successfully: ${newVariation}`);
});

但它告诉我
38导出。创建变化= catchAsync(async(req,res)=〉{39 const newVariation =等待棱镜。变化。创建(外键约束在字段上失败:在请求处理器上的处理器和日志请求处理器上的处理器和日志请求处理器上的处理器和日志请求处理器上的处理器和日志请求处理器上的处理器和日志请求处理器上的处理器和日志请求处理器上的处理器和日志请求处理器上的处理器和日志请求处理器上的处理器和日志请求处理器上的处理器和日志请求处理器上的处理器和日志请求处理器上的处理器和日志请求处理器上的处理器和日志请求处理器上的处理器和日志请求处理器上的处理器和日志请求处理器上的处理器和日志请求处理器上的处理器和日志请求处理器上的处理器和日志请求处理器上的处理器和日志请求处理器上的处理器和日志请求处理器上的处理器和日志请求处理器上的处理器和日志请求处理器上的处理器和日志请求处理器上的处理器和日志请求处理器上的处理器和日志请求处理器上的处理器和日志请求处理器上的处理器和日志请求处理器上的处理中的prisma.variation.create()调用无效
我怎样才能解决这个问题?

nzk0hqpo

nzk0hqpo1#

该错误消息表明不存在具有您在package_id字段中提供的ID的包。
如果不需要package_id字段,或者需要确保具有所传递的package_id值的包存在,则可以省略该字段。

相关问题