sql >> Databáze >  >> RDS >> PostgreSQL

nelze odstranit objekt kvůli omezení cizího klíče

Nejprve byste museli odstranit Identitu, která odkazuje na uživatele. Poté můžete uživatele smazat. Ve výchozím nastavení provádí cizí klíč restrict takže nemůžete odstranit uživatele, pokud na něj něco odkazuje.

pokud byste chtěli použít Rails ke zničení identity, můžete to udělat

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

  ......

 end 

Což by způsobilo, že by Rails zničil všechny závislé záznamy.

Ale protože používáte cizí klíče, můžete upravit svou migraci tak, aby nastavila kaskádové mazání

 add_foreign_key :identities, :users, on_delete: :cascade

Za předpokladu, že rails 4.2 má nativní podporu



  1. Používání Passport s Sequelize a MySQL

  2. Chyba při použití shody vzorů, která není podobná žádné v PostgreSQL

  3. Použití HHVM s WordPress

  4. Jak vytvořit databázi zásob v Accessu