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: