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: