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

Lỗi:Khóa ... không có trong bảng

Dự đoán đầu tiên của tôi là bạn đang đối phó với hai các bảng khác nhau được đặt tên là bg . Một trong lược đồ tiger và một lược đồ khác trong lược đồ không được tiết lộ có trước tiger trong search_path của bạn - hoặc con hổ không có trong search_path ở tất cả.

Tìm tất cả các bảng có tên bg (phân biệt chữ hoa chữ thường) trong tất cả các lược đồ trong db hiện tại:

SELECT * FROM pg_tables WHERE tablename = 'bg';

Để hiểu search_path cài đặt:

Để hiểu cấu trúc của một cụm Postgres DB:

Nếu không phải vậy, chỉ mục của bạn có thể bị hỏng. Trước tiên, tôi sẽ thử một REINDEX :

REINDEX bg_pkey;

Kế thừa!

Tôi thấy trong định nghĩa bảng đã thêm của bạn:

Nghi ngờ rằng hàng có bg_id ='470370111002' thực sự nằm trong bảng con tiger_data.tn_bg . Nhưng ràng buộc FK của bạn tham chiếu đến bảng mẹ . Các ràng buộc FK không được kế thừa.
Bạn sẽ nhận được gì nếu truy vấn:

SELECT * FROM ONLY bg WHERE bg_id ='470370111002'

Nếu giả thuyết của tôi đúng, bạn sẽ không có hàng . Đọc chương Cảnh báo trên trang Kế thừa của sổ tay .

Có liên quan:




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách sqrt () hoạt động trong PostgreSQL

  2. Làm cách nào để tạo một hàm lồng nhau trong PL / pgSQL?

  3. Buộc SSL cho kết nối Django Postgres

  4. Bảo vệ sar (và cách cấu hình nó)

  5. Cách bỏ một khóa tham gia khi tham gia hai bảng