Dugaan pertama saya adalah Anda berurusan dengan dua tabel yang berbeda bernama bg
. Satu di skema tiger
, dan satu lagi dalam skema yang dirahasiakan yang muncul sebelum tiger
di search_path
. Anda - atau harimau tidak ada di search_path
sama sekali.
Temukan semua tabel bernama bg
(peka huruf besar/kecil) di semua skema di db saat ini:
SELECT * FROM pg_tables WHERE tablename = 'bg';
Untuk memahami search_path
pengaturan:
Untuk memahami struktur cluster DB Postgres:
Jika bukan itu, indeks Anda mungkin rusak. Pertama-tama saya akan mencoba REINDEX
:
REINDEX bg_pkey;
Warisan!
Saya melihat dalam definisi tabel Anda yang ditambahkan:
Mencurigai bahwa baris dengan bg_id ='470370111002'
sebenarnya tinggal di tabel anak tiger_data.tn_bg
. Tetapi batasan FK Anda merujuk ke tabel induk . Batasan FK tidak diwariskan.
Apa yang Anda dapatkan jika Anda menanyakan:
SELECT * FROM ONLY bg WHERE bg_id ='470370111002'
Jika hipotesis saya benar, Anda mendapatkan tidak ada baris . Baca bab Peringatan di halaman Warisan dari manual .
Terkait: