Mit første gæt vil være, at du har at gøre med to forskellige tabeller navngivet bg
. En i skemaet tiger
, og en anden i et ikke-oplyst skema, der kommer før tiger
i din search_path
- eller tiger er ikke i search_path
overhovedet.
Find alle tabeller med navnet bg
(forskel mellem store og små bogstaver) i alle skemaer i den aktuelle db:
SELECT * FROM pg_tables WHERE tablename = 'bg';
For at forstå search_path
indstilling:
For at forstå strukturen af en Postgres DB-klynge:
Hvis det ikke er det, kan dit indeks være beskadiget. Jeg ville først prøve en REINDEX
:
REINDEX bg_pkey;
Arv!
Jeg kan se i din tilføjede tabeldefinition:
Mistanke om, at rækken med bg_id ='470370111002'
bor faktisk i underordnet bord tiger_data.tn_bg
. Men din FK-begrænsning refererer til overordnet tabel . FK-begrænsninger nedarves ikke.
Hvad får du, hvis du forespørger:
SELECT * FROM ONLY bg WHERE bg_id ='470370111002'
Hvis min hypotese holder, får du ingen række . Læs kapitlet Forbehold stærk> på siden Arv i manualen .
Relateret: