Ir al contenido principal

Forzar el uso de un esquema específico en la cadena de conexión

En ocasiones queremos forzar el uso de un esquema específico, diferente de public para una conexión dada, de forma que, si no se especifica un esquema en la consulta SQL, se use ese esquema por defecto. PostgreSQL permite definir uno o varios esquemas en los que va a buscar una tabla si no se especifica el esquema en la consulta, en la cadena de conexión. Esto se consigue usando el parámetro Search Path.  Veamos un ejemplo:

Host=localhost; Port=5432; Database=miDatabase; User Id=usuario; Password=contraseña; Search Path=miEsquema;

En la cadena de conexión anterior hemos definido miEsquema dentro del parámetro Search Path como esquema por defecto. Esto hace que, si ejecutamos una consulta, como por ejemplo:

select * from customers;

Internamente sea tratada como:

select * from miEsquema.customers;

Esta técnica nos permite definir consultas que no están asociadas a un esquema concreto, permitiendo definir un esquema para uso global.