Meine erste Vermutung wäre, dass Sie es mit zwei zu tun haben verschiedene Tische mit dem Namen bg . Einer im Schema tiger , und ein weiteres in einem nicht offengelegten Schema, das vor tiger kommt in Ihrem search_path - oder Tiger ist nicht im search_path überhaupt.
Finden Sie alle Tabellen mit dem Namen bg (Groß-/Kleinschreibung beachten) in allen Schemas in der aktuellen Datenbank:
SELECT * FROM pg_tables WHERE tablename = 'bg';
Um den search_path zu verstehen Einstellung:
So verstehen Sie die Struktur eines Postgres-DB-Clusters:
Wenn das nicht der Fall ist, ist Ihr Index möglicherweise beschädigt. Ich würde zuerst einen REINDEX ausprobieren
:
REINDEX bg_pkey;
Vererbung!
Ich sehe in Ihrer hinzugefügten Tabellendefinition:
Vermutung, dass die Zeile mit bg_id ='470370111002' lebt tatsächlich in der untergeordneten Tabelle tiger_data.tn_bg . Ihre FK-Einschränkung verweist jedoch auf die Elterntabelle . FK-Einschränkungen werden nicht vererbt.
Was erhalten Sie, wenn Sie Folgendes abfragen:
SELECT * FROM ONLY bg WHERE bg_id ='470370111002' Wenn meine Hypothese zutrifft, erhalten Sie keine Zeile . Lesen Sie das Kapitel Warnhinweise auf der Vererbungsseite des Handbuchs .
Verwandte: