sql >> Database teknologi >  >> RDS >> PostgreSQL

kan ikke slette objekt på grund af begrænsning af fremmednøgle

Du skal først fjerne den identitet, der refererer til brugeren. Så kan du slette brugeren. Som standard laver den fremmede nøgle en restrict så du kan ikke slette brugeren, hvis noget refererer til den.

hvis du gerne vil bruge Rails til at håndtere ødelæggelsen af ​​identiteten kan du gøre

class User < ActiveRecord::Base
  has_many :identities,  dependent: :destroy 

  ......

 end 

Hvilket ville få Rails til at ødelægge alle de afhængige poster.

Men da du bruger fremmednøgler, kan du justere din migrering for at indstille kaskadesletninger

 add_foreign_key :identities, :users, on_delete: :cascade

Forudsat skinner 4.2, som har indbygget understøttelse



  1. Hvad gør (+) i Oracle SQL?

  2. T-SQL split streng

  3. MySQL INSERT eller REPLACE kommandoer

  4. hvad er @JoinColumn, og hvordan det bruges i Hibernate