PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

nie można usunąć obiektu z powodu ograniczenia klucza obcego

Musisz najpierw usunąć tożsamość, która odwołuje się do użytkownika. Następnie możesz usunąć użytkownika.. Domyślnie klucz obcy wykonuje restrict więc nie możesz usunąć użytkownika, jeśli coś się do niego odnosi.

jeśli chcesz użyć Railsów do obsługi niszczenia tożsamości, możesz to zrobić

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

  ......

 end 

Co spowodowałoby, że Railsy zniszczyłyby wszystkie zależne rekordy.

Ale ponieważ używasz kluczy obcych, możesz dostosować migrację, aby ustawić usuwanie kaskadowe

 add_foreign_key :identities, :users, on_delete: :cascade

Zakładając, że rails 4.2 ma natywną obsługę



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Przegląd narzędzi do planowania zadań dla PostgreSQL

  2. Kilka pomysłów na niskopoziomowe pulowanie zasobów w PostgreSQL

  3. 8 nowych funkcji zgodności z Oracle w EnterpriseDB PPAS 9.2 Beta

  4. Mówienie użytkownikom, aby sami się rozwidlili

  5. Jak utworzyć histogram w PostgreSQL