Domyślam się, że masz do czynienia z dwoma różne stoły o nazwie bg . Jeden w schemacie tiger , a drugi w nieujawnionym schemacie, który występuje przed tiger w Twojej search_path - lub tygrys nie znajduje się w search_path w ogóle.
Znajdź wszystkie tabele o nazwie bg (wielkość liter ma znaczenie) we wszystkich schematach w bieżącej bazie danych:
SELECT * FROM pg_tables WHERE tablename = 'bg';
Aby zrozumieć search_path ustawienie:
Aby zrozumieć strukturę klastra Postgres DB:
Jeśli tak nie jest, Twój indeks może być uszkodzony. Najpierw spróbowałbym REINDEX
:
REINDEX bg_pkey;
Dziedziczenie!
Widzę w dodanej definicji tabeli:
Podejrzewam, że wiersz z bg_id ='470370111002' faktycznie mieszka w stoliku podrzędnym tiger_data.tn_bg . Ale Twoje ograniczenie FK odwołuje się do tabeli nadrzędnej . Ograniczenia FK nie są dziedziczone.
Co otrzymasz, jeśli wyślesz zapytanie:
SELECT * FROM ONLY bg WHERE bg_id ='470370111002' Jeśli moja hipoteza jest słuszna, brak wiersza . Przeczytaj rozdział Zastrzeżenia na stronie Dziedziczenie podręcznika .
Powiązane: