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: