PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Erreur :La clé ... n'est pas présente dans le tableau

Ma première supposition serait que vous avez affaire à deux différents tableaux nommé bg . Un dans le schéma tiger , et un autre dans un schéma non divulgué qui précède tiger dans votre search_path - ou le tigre n'est pas dans le search_path du tout.

Trouver toutes les tables nommées bg (sensible à la casse) dans tous les schémas de la base de données actuelle :

SELECT * FROM pg_tables WHERE tablename = 'bg';

Pour comprendre le search_path réglage :

Pour comprendre la structure d'un cluster de bases de données Postgres :

Si ce n'est pas le cas, votre index est peut-être corrompu. Je voudrais d'abord essayer un REINDEX :

REINDEX bg_pkey;

Héritage !

Je vois dans votre définition de table ajoutée :

Suspectant que la ligne avec bg_id ='470370111002' vit réellement dans la table enfant tiger_data.tn_bg . Mais votre contrainte FK fait référence à la table parent . Les contraintes FK ne sont pas héritées.
Qu'obtenez-vous si vous interrogez :

SELECT * FROM ONLY bg WHERE bg_id ='470370111002'

Si mon hypothèse est vraie, vous n'obtenez pas de ligne . Lisez le chapitre Mises en garde sur la page Héritage du manuel .

Connexe :