¿Cómo saber en qué esquemas busca PostgreSQL una tabla? SHOW search_path muestra el orden de esquemas que usa la sesión cuando una consulta no escribe el esquema delante del nombre.
Consultar el search_path
SHOW search_path;
Una salida habitual es:
search_path ----------------- "$user", public
$user representa un esquema con el mismo nombre que el usuario conectado, si existe. public es el siguiente esquema de la lista.
Ver los esquemas que se aplican en esta sesión
Para obtener la lista efectiva, sin los marcadores que no correspondan a un esquema existente:
SELECT current_user,
current_schema(),
current_schemas(false);
current_schema() devuelve el primer esquema válido del search_path. current_schemas(false) devuelve los esquemas válidos que PostgreSQL recorrerá para resolver nombres sin calificar, sin incluir los esquemas del sistema.
Si necesitas evitar ambigüedades, escribe siempre el esquema:
SELECT * FROM public.nombre_de_tabla;
Cambiar el search_path modifica la resolución de nombres de la sesión y debe hacerse con cuidado, especialmente si una aplicación trabaja con tablas del mismo nombre en varios esquemas.
