sql >> Database >  >> RDS >> PostgreSQL

Error:Sleutel ... is niet aanwezig in tabel

Mijn eerste gok zou zijn dat je te maken hebt met twee verschillende tafels genaamd bg . Een in het schema tiger , en nog een in een niet bekendgemaakt schema dat voor tiger komt in uw search_path - of tijger staat niet in het search_path helemaal niet.

Zoek alle tabellen met de naam bg (hoofdlettergevoelig) in alle schema's in de huidige database:

SELECT * FROM pg_tables WHERE tablename = 'bg';

Om het search_path te begrijpen instelling:

Om de structuur van een Postgres DB-cluster te begrijpen:

Als dat niet het geval is, is uw index mogelijk beschadigd. Ik zou eerst een REINDEX proberen :

REINDEX bg_pkey;

Overerving!

Ik zie in uw toegevoegde tabeldefinitie:

Vermoeden dat de rij met bg_id ='470370111002' woont eigenlijk in de kindertafel tiger_data.tn_bg . Maar uw FK-beperking verwijst naar de bovenliggende tabel . FK-beperkingen worden niet overgenomen.
Wat krijg je als je een vraag stelt:

SELECT * FROM ONLY bg WHERE bg_id ='470370111002'

Als mijn hypothese klopt, krijg je geen rij . Lees het hoofdstuk Voorbehouden op de Overervingspagina van de handleiding .

Gerelateerd:




  1. PHP haalt gegevens op uit tabelrij en slaat op in variabele

  2. Een-op-nul-of-een-relatie implementeren in SQL Server

  3. Toegang tot een MySQL-database via Jupyter Notebook met Python3

  4. ORDER_BY datum LIMIT 1