PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

не може да изтрие обект поради ограничение на външния ключ

Първо ще трябва да премахнете самоличността, която препраща към потребителя. След това можете да изтриете потребителя. По подразбиране външният ключ прави restrict така че не можете да изтриете потребителя, ако нещо се позовава на него.

ако искате да използвате Rails за унищожаване на самоличността, можете да направите

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

  ......

 end 

Което би накарало Rails да унищожи всички зависими записи.

Но тъй като използвате чужди ключове, можете да коригирате своята миграция, за да зададете каскадни изтривания

 add_foreign_key :identities, :users, on_delete: :cascade

Да приемем, че релсите 4.2 има вградена поддръжка



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Автоматично тестване на процеса на надстройка за PostgreSQL

  2. Прехвърляне на тип данни на Postgres

  3. Върнете нула, ако не бъде намерен запис

  4. Автоматизиране на барман с кукла:it2ndq/барман (част втора)

  5. RoR:Не може да се промени_колона в postgres, добре в MySQL (MySQL за разработка, Postgres на Heroku)