sql >> Base de Datos >  >> RDS >> PostgreSQL

Error:Clave... no está presente en la tabla

Mi primera suposición sería que estás tratando con dos mesas diferentes llamado bg . Uno en el esquema tiger , y otro en un esquema no revelado que viene antes de tiger en tu search_path - o el tigre no está en search_path en absoluto.

Encuentra todas las tablas llamadas bg (distingue entre mayúsculas y minúsculas) en todos los esquemas en la base de datos actual:

SELECT * FROM pg_tables WHERE tablename = 'bg';

Para comprender la search_path ajuste:

Para comprender la estructura de un clúster de base de datos de Postgres:

Si no es así, su índice puede estar dañado. Primero probaría un REINDEX :

REINDEX bg_pkey;

¡Herencia!

Veo en su definición de tabla agregada:

Sospechando que la fila con bg_id ='470370111002' en realidad vive en la mesa del niño tiger_data.tn_bg . Pero su restricción FK hace referencia a la tabla principal . Las restricciones FK no se heredan.
¿Qué obtiene si consulta:

SELECT * FROM ONLY bg WHERE bg_id ='470370111002'

Si mi hipótesis se mantiene, obtienes ninguna fila . Lea el capítulo Advertencias en la página Herencia del manual .

Relacionado: