- Software y sistemas
- Base de datos
42P01
PostgreSQL 42P01 en base de datos: la tabla o relación no existe
Evidencia vinculada a esta decisión
Ver fuente: PostgreSQL 18 Appendix A: Error CodesNivel de riesgo
Precaución
Actúa con cuidado; puede requerir técnico si persiste.
Urgencia
Media — atiéndelo hoy
Respuesta rápida
PostgreSQL no encuentra la tabla o vista que nombra la sentencia. Comprueba en qué base y con qué search_path conecta la aplicación; la tabla puede existir en otro esquema o con otra grafía.
Seguridad primero
Antes de continuar
- No añadas a search_path esquemas en los que otros usuarios pueden crear objetos: la documentación advierte que eso les permite cambiar el comportamiento de tus consultas.
Puedes hacerlo con seguridad
- Base y esquemas de la sesión que falla
- Dónde existe la tabla
Deja estas tareas a un profesional cualificado
- No intentes esta tarea profesional: Calificar nombres o corregir search_path
- No intentes esta tarea profesional: Aplicar el cambio de esquema pendiente
Lo que un técnico debe poder justificar
Viene un técnico
Estos son los pasos que tiene que hacer y enseñarte. Márcalos mientras trabaja: si se salta pasos, no aceptes el cambio de pieza.
No son instrucciones para que abras o manipules el equipo. Son las comprobaciones que deben sostener una conclusión técnica.
Calificar nombres o corregir search_path
Qué haceEl desarrollador escribe esquema.tabla en las consultas o ajusta search_path para el rol, siguiendo la política del equipo.
Te tiene que enseñarel cambio.
Por escritola prueba en la base afectada.
Aplicar el cambio de esquema pendiente
Qué haceSi la tabla falta, el equipo aplica la migración revisada que la crea en esa base.
Te tiene que enseñarel estado de las migraciones antes y después.
Por escritola versión aplicada.
Antes de aceptar una pieza o reparación
Aún no ha demostrado nada. No aceptes un cambio de pieza solo por el código.
Sigue estos pasos
Aviso: Sigue el orden documentado. Un código identifica el sistema afectado, pero por sí solo no demuestra qué pieza está averiada.
Base y esquemas de la sesión que falla
- Quién:
- tú, como desarrollador.
- Cómo:
- en la misma conexión que la aplicación, ejecuta SELECT current_database(), current_schema(), current_schemas(true).
- Resultado que importa:
- en qué base y con qué esquemas busca la sesión.
- Si la base no es la prevista:
- confirma un error de configuración de la conexión.
- Si la base es correcta:
- pasa a buscar la tabla por esquema.
- Evidencia a conservar:
- salida de la consulta con hora.
Evidencia: PostgreSQL 18 system information functions · PostgreSQL 18 schemas
Dónde existe la tabla
- Quién:
- tú, como desarrollador.
- Cómo:
- consulta information_schema.tables filtrando por table_name, en minúsculas y con su grafía exacta; la vista solo muestra tablas a las que tu usuario tiene acceso.
- Resultado que importa:
- en qué esquema aparece y con qué nombre.
- Si aparece en otro esquema:
- indica que falta en search_path; califica el nombre como esquema.tabla.
- Si no aparece en ninguno:
- confirma que falta en esta base; revisa el cambio de esquema pendiente.
- Evidencia a conservar:
- resultado de la búsqueda.
Solo lectura. No crees una tabla vacía con ese nombre para que desaparezca el error: no lo hagas sin el responsable del esquema.
Evidencia: PostgreSQL 18 lexical structure · PostgreSQL 18 schemas · PostgreSQL 18 information_schema tables view
Situación no resuelta
Si el error persiste, no sigas probando por tu cuenta. Mira qué tiene que hacer y enseñarte el técnico.
Técnico virtual
¿Sigue apareciendo 42P01 tras comprobarlo?
Este recorrido usa el código exacto y tus respuestas para elegir una prueba, su resultado esperado y la siguiente bifurcación.
Dónde se aplica este código
Un código solo tiene significado dentro del producto y la versión correctos.
Ámbito principal
- Sistema
- Software y sistemas
- Marca
- PostgreSQL
- Tipo de producto
- Base de datos
Variantes conocidas del código
- PostgreSQL 42P01
- SQLSTATE 42P01
- undefined_table
Qué significa
El apéndice A asigna 42P01 a undefined_table, en la clase 42. Para nombres sin esquema, PostgreSQL busca en las rutas de search_path y usa la primera coincidencia; si no la hay, da error aunque exista una tabla con ese nombre en otro esquema. Los nombres sin comillas se pasan a minúsculas y los entrecomillados distinguen mayúsculas. El código no dice si falta la tabla, si está en otro esquema o si la conexión apunta a otra base.
Advertencias y condiciones de parada
- Precauciónverificada con fuente
No añadas a search_path esquemas en los que otros usuarios pueden crear objetos: la documentación advierte que eso les permite cambiar el comportamiento de tus consultas.
Evidencia: PostgreSQL 18 schemas
Síntomas y causas
Causas probables · en orden
- Tabla en un esquema que no está en search_pathFrecuente
La tabla existe, pero en un esquema que la sesión no busca. Funciona si se escribe esquema.tabla.
Evidencia: PostgreSQL 18 schemas
- Conexión a otra base o tabla aún no creadaPosible
La aplicación apunta a una base distinta o a una donde no se ha aplicado el cambio que crea la tabla. current_database lo muestra.
Evidencia: PostgreSQL 18 Appendix A: Error Codes · PostgreSQL 18 system information functions
- Mayúsculas en un nombre entrecomilladoPosible
La tabla se creó como "Pedidos" y la consulta escribe Pedidos sin comillas, que se busca como pedidos.
Evidencia: PostgreSQL 18 lexical structure
Fuentes y referencias técnicas
- 1
PostgreSQL 18 Appendix A: Error Codes
PostgreSQL Global Development Group · 2026 · official_doc
- 2
PostgreSQL error and notice fields
PostgreSQL Global Development Group · 2026 · official_doc
¿Te ha resultado útil esta ficha?