delete할때 foreign key 에러

YEONGHUN KO·2023년 8월 30일
1

BACKEND - DATABASE

목록 보기
4/8
post-thumbnail

user와 refreshKey를 one to one관계로 설정하고 create한뒤 delete하려 했으나 다음과 같은 에러가 발생했다.

Foreign key constraint failed on the field: foreign key

구글링해보니 referential action을 설정해주어야 한다고 했다.

일단 model을 살펴보자

model User {
  id Int @id @default(autoincrement())

  email          String        @unique
  password       String        @default("")
  name           String        @default("")
  profilePicture String        @default("")
  about          String        @default("")
  refreshToken   RefreshToken?
}

model RefreshToken {
  id     Int    @id @default(autoincrement())
  value  String @unique
  User   User   @relation(fields: [userId], references: [id], onDelete: Cascade)
  userId Int    @unique
}

그럼 user relation에 ondelete cascade를 해주면 된다. 이말은 user를 삭제하면 타고 올라가 refresh token도 삭제된다는 의미이다.

profile
'과연 이게 최선일까?' 끊임없이 생각하기

0개의 댓글