使用 Prisma 创建间接引用
Posted
技术标签:
【中文标题】使用 Prisma 创建间接引用【英文标题】:Creating indirect references with Prisma 【发布时间】:2022-01-07 23:29:27 【问题描述】:Prisma documentation 包含一个关于如何创建嵌套记录(缩短)的示例:
const user = await prisma.user.create(
data:
email: 'yvette@prisma.io',
name: 'Yvette',
posts:
create: [
title: 'How to make an omelette',
categories:
create:
name: 'Easy cooking',
,
,
,
],
,
,
)
假设我还需要从创建的类别(“创建者”左右)中引用创建的用户。 Prisma 不会像直接引用那样填写用户 ID,但我也没有用户 ID 自己在数据中指定它。如果我正确理解了 Prisma-transactions,我也不能在没有从类别到用户的引用的情况下先创建记录,然后在同一个事务中添加缺少的引用。
那么你如何以安全的方式做这样的事情(我的用例略有不同但可比较)?
【问题讨论】:
【参考方案1】:我认为Interactive Transaction 可以在这里工作。
只需创建一个交易,其中:
-
首先创建“创建者”或“用户”记录。
使用“创建者”记录返回的对象,并在创建“帖子”/依赖记录时随意引用其
id
。
1 和 2 是 单独的这里的 Prisma 查询(不是单个嵌套写入)。
【讨论】:
以上是关于使用 Prisma 创建间接引用的主要内容,如果未能解决你的问题,请参考以下文章
Prisma 嵌套创建引发未知 arg 错误,而 prisma 示例工作