Min första gissning skulle vara att du har att göra med två olika tabeller heter bg
. En i schemat tiger
, och ytterligare ett i ett hemligt schema som kommer före tiger
i din search_path
- eller tiger finns inte i search_path
överhuvudtaget.
Hitta alla tabeller som heter bg
(skiftlägeskänslig) i alla scheman i den aktuella db:
SELECT * FROM pg_tables WHERE tablename = 'bg';
För att förstå search_path
inställning:
För att förstå strukturen för ett Postgres DB-kluster:
Om det inte är det kan ditt index vara skadat. Jag skulle först prova en REINDEX
:
REINDEX bg_pkey;
Arv!
Jag ser i din tillagda tabelldefinition:
Misstänker att raden med bg_id ='470370111002'
faktiskt bor i barntabellen tiger_data.tn_bg
. Men din FK-begränsning refererar till överordnad tabellen . FK-begränsningar ärvs inte.
Vad får du om du frågar:
SELECT * FROM ONLY bg WHERE bg_id ='470370111002'
Om min hypotes håller, får du ingen rad . Läs kapitlet Varningar stark> på sidan Arv i handboken .
Relaterat: