Prisma自动创建相关行,当父级被创建时
P粉211600174
P粉211600174 2023-08-26 19:19:48
0
2
423
<p>我有一个类似于这样的模式</p> <pre class="brush:php;toolbar:false;">model User { id Int @default(autoincrement()) settings Settings } model Settings { userId Int settingOne Boolean @default(false) user User @relation(fields: [userId], references: [id], onDelete: Cascade) }</pre> <p>我不想让用户的设置是可选的 - 是否有一种方法可以在创建用户时自动在设置表中创建相应的行?</p>
P粉211600174
P粉211600174

全部回复(2)
P粉916760429

我在我的代码中正在做非常类似的事情:

const publication = await prisma.publication.create({
    data: {
        title: e.title,
        type: e.type,
        content: e.content,
        user: {
            connect: {
                id: user.id
            }
        },
        publicationStatus: {
            create: {
                status: 'DRAFT'
            }
        }
    }
});

我们所有的publications都有一个对应的publicationStatus,类似于你列出的问题,也许你可以这样做:

await prisma.user.create({
    data: {
        settings: {
            create: {
                settingOne: true
            }
        }
    }
})

或者类似的操作?

P粉710454910

这是不可能的,因为如果关系的两个方面都是必需的,那么你如何创建其中任何一个呢?所以没有关系标量(表示数据库中外键的字段)的关系方面必须是可选的。你可以自己决定哪一个。

例如,你想创建User,但Settings是必需的,所以你需要先创建Settings。但是要创建Settings,你也需要User,因为它在Settings模型中是必需的。

更多信息请参阅文档

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板