概要
俗に云うCascading deletesの機能です。
Prismaでは2.26.0以降でReferential actionsの機能が使えるます。
日本語の文献が少なく、探すのに苦労したので備忘録です。
定義方法
@relation
で定義時に、onDelete: Cascade
を指定することで親が削除された際に子も削除されます。
削除せずにレコードを残したい場合には onDelete: SetNull
を指定することでレコードを残すことも出来ます。
model User {
id Int @id @default(autoincrement())
posts Post[]
}
model Post {
id Int @id @default(autoincrement())
title String
tags Tag[]
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
userId Int
}
model Tag {
id Int @id @default(autoincrement())
tagname String
post Post @relation(fields: [postId], references: [id], onDelete: Cascade)
postId Int
}
参考文献