Prisma自動建立相關行,當父級被建立時
P粉211600174
P粉211600174 2023-08-26 19:19:48
0
2
443
<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模型中是必要的。

更多資訊請參閱文件

#
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板