PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

không thể xóa đối tượng do ràng buộc khóa ngoại

Trước tiên, bạn cần xóa Danh tính tham chiếu đến người dùng. Sau đó, bạn có thể xóa người dùng .. Theo mặc định, khóa ngoại đang thực hiện restrict vì vậy bạn không thể xóa người dùng nếu có bất kỳ điều gì liên quan đến nó.

nếu bạn muốn sử dụng Rails để xử lý việc phá hủy danh tính mà bạn có thể làm

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

  ......

 end 

Điều này sẽ khiến Rails phá hủy tất cả các bản ghi phụ thuộc.

Nhưng khi bạn đang sử dụng Khóa ngoài, bạn có thể điều chỉnh quá trình di chuyển của mình để đặt xóa theo tầng

 add_foreign_key :identities, :users, on_delete: :cascade

Giả sử đường ray 4.2 có hỗ trợ gốc



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. tùy chỉnh máy nhắn tin trong psql

  2. đặt mật khẩu trống cho người dùng PostgreSQL

  3. Đối với người mới bắt đầu, có nhiều sự khác biệt giữa MySQL và PostgreSQL không

  4. Kiểm tra tự động quá trình nâng cấp cho PostgreSQL

  5. Cách thêm chỉ mục duy nhất có điều kiện trên PostgreSQL