Můj první odhad by byl, že máte co do činění s dvoma různé stoly s názvem bg
. Jeden ve schématu tiger
a další v nezveřejněném schématu, které předchází tiger
ve vaší search_path
- nebo tygr není v search_path
vůbec.
Najděte všechny tabulky s názvem bg
(rozlišují se malá a velká písmena) ve všech schématech v aktuální databázi:
SELECT * FROM pg_tables WHERE tablename = 'bg';
Pro pochopení search_path
nastavení:
Chcete-li porozumět struktuře clusteru Postgres DB:
Pokud tomu tak není, váš index může být poškozen. Nejprve bych zkusil REINDEX
:
REINDEX bg_pkey;
Dědičnost!
Ve vaší přidané definici tabulky vidím:
Podezření, že řádek s bg_id ='470370111002'
ve skutečnosti žije v dětském stole tiger_data.tn_bg
. Ale vaše omezení FK odkazuje na nadřazenou tabulku . Omezení FK se nedědí.
Co získáte, když se zeptáte:
SELECT * FROM ONLY bg WHERE bg_id ='470370111002'
Pokud moje hypotéza platí, nedostanete žádný řádek . Přečtěte si kapitolu Upozornění na stránce Dědičnost v příručce .
Související: