【问题标题】:Prisma/MySQL doesn't let me delete triple related recordPrisma/MySQL 不允许我删除三重相关记录
【发布时间】:2022-12-02 18:59:31
【问题描述】:

I have User, Restaurant, Review, ReviewImages tables. When a user writes a review on a restaurant with a picture, the review is saved as Review record and its picture in ReviewImages records.

The problem I\'m facing is that I cannot delete Review record until I delete a related ReviewImages record.

model User {
  id                 String               @id @default(cuid())
  name               String
  nickname           String?              @unique
  bobId              String?              @unique
  email              String               @unique
  emailVerified      DateTime?
  image              String?              @db.VarChar(500)
  title              String?
  description        String?              @db.VarChar(500)
  accounts           Account[]
  sessions           Session[]
  VisitedRestaurants VisitedRestaurants[]
  Reviews            Reviews[]
  ReviewImages       ReviewImages[]
  ReviewLikes        ReviewLikes[]
  ReviewComments     ReviewComments[]
}

model Restaurants {
  id        String               @id @db.VarChar(50)
  poi_nm    String               @db.VarChar(100)
  branch_nm String?              @db.VarChar(100)
  sub_nm    String?              @db.VarChar(100)
  mcate_cd  String?              @db.VarChar(30)
  mcate_nm  String?              @db.VarChar(200)
  pnu       String?              @db.VarChar(30)
  sido_nm   String?              @db.VarChar(100)
  sgg_nm    String?              @db.VarChar(100)
  bemd_nm   String?              @db.VarChar(100)
  ri_nm     String?              @db.VarChar(100)
  beonji    String?              @db.VarChar(20)
  badm_cd   String?              @db.VarChar(30)
  hadm_cd   String?              @db.VarChar(30)
  rd_cd     String?              @db.VarChar(30)
  rd_nm     String?              @db.VarChar(100)
  bld_num   String?              @db.VarChar(30)
  grid_cd   String?              @db.VarChar(30)
  origin    String?              @db.VarChar(200)
  base_ymd  String?              @db.VarChar(20)
  createdAt DateTime             @default(now())
  loc       Unsupported(\"point\")

  Reviews            Reviews[]
  VisitedRestaurants VisitedRestaurants[]
  ReviewImages       ReviewImages[]

  @@index(loc, map: \"loc\")
}

model Reviews {
  id           String      @unique @default(cuid())
  user         User        @relation(fields: [userId], references: [id])
  userId       String      @db.VarChar(255)
  restaurant   Restaurants @relation(fields: [restaurantId], references: [id])
  restaurantId String      @db.VarChar(50)
  title        String      @db.VarChar(300)
  titleLink    String      @unique @db.VarChar(500)
  content      String      @db.Text
  preview      String      @db.VarChar(255)
  createdAt    DateTime    @default(now())
  updatedAt    DateTime    @updatedAt

  ReviewImages   ReviewImages[]
  ReviewLikes    ReviewLikes[]
  ReviewComments ReviewComments[]

  @@id([userId, restaurantId])
}

model ReviewImages {
  id           String      @id @default(cuid())
  urls         String      @db.Text
  user         User        @relation(fields: [userId], references: [id])
  userId       String
  review       Reviews     @relation(fields: [reviewId], references: [id], onDelete: Cascade)
  reviewId     String
  restaurant   Restaurants @relation(fields: [restaurantId], references: [id])
  restaurantId String
  createdAt    DateTime    @default(now())
  updatedAt    DateTime    @updatedAt
}

When developing, I delete/add records using Prisma Studio and the error is as follows.

Type: undefined
Message: 
Invalid `prisma.reviews.delete()` invocation:


Foreign key constraint failed on the field: `reviewId`

Code: P2003

Query:
[object Object]

I\'m guessing that ReviewImages model has some issues in its relations, but I\'m not sure..

    标签: mysql prisma


    【解决方案1】:
    猜你喜欢
    • 1970-01-01
    • 2019-06-27
    • 2010-11-10
    • 2016-07-28
    • 2014-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-15
    相关资源
    最近更新 更多