sql >> Database >  >> RDS >> PostgreSQL

kan object niet verwijderen vanwege beperking van refererende sleutels

U moet eerst de identiteit verwijderen die naar de gebruiker verwijst. Vervolgens kunt u de gebruiker verwijderen. Standaard doet de externe sleutel een restrict dus je kunt de gebruiker niet verwijderen als er iets naar verwijst.

als je Rails wilt gebruiken om de identiteit te vernietigen, kun je dat doen

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

  ......

 end 

Waardoor Rails alle afhankelijke records zou vernietigen.

Maar aangezien u buitenlandse sleutels gebruikt, kunt u uw migratie aanpassen om trapsgewijze verwijderingen in te stellen

 add_foreign_key :identities, :users, on_delete: :cascade

Uitgaande van rails 4.2 die native ondersteuning heeft



  1. 2 queries tegelijk uitvoeren op Oracle SQL Developer?

  2. Laatst ingevoegde id ophalen met Mysql

  3. Verschil tussen numeriek, zwevend en decimaal in SQL Server

  4. Afkappen (niet ronde) decimalen in SQL Server