Todos los términos del glosario

Esquema

¿Qué es un esquema en PostgreSQL?

Un esquema es un espacio de nombres dentro de una base de datos que contiene tablas, vistas, funciones y otros objetos. search_path decide dónde se buscan los nombres no calificados.

Una base de datos de PostgreSQL contiene uno o más esquemas, y cada esquema contiene tablas y otros objetos con nombre. El mismo nombre de tabla puede existir en distintos esquemas, y puedes referirte a un objeto como schema.table. Toda base de datos nueva tiene un esquema llamado public.

Los esquemas agrupan objetos relacionados, permiten que varios usuarios o aplicaciones compartan una base de datos sin conflictos de nombres y facilitan la gestión de privilegios. Los nombres no calificados se resuelven mediante search_path, que de forma predeterminada busca primero un esquema con el nombre del usuario actual y luego en public. En PostgreSQL 15 y versiones posteriores, los usuarios comunes ya no pueden crear objetos en public de forma predeterminada.

Ejemplo

El ejemplo crea un esquema billing, coloca una tabla en él y cambia search_path para que la tabla pueda usarse sin el nombre del esquema.

CREATE SCHEMA billing;
CREATE TABLE billing.invoices (id int PRIMARY KEY);

SHOW search_path;
SET search_path TO billing, public;
SELECT count(*) FROM invoices;
RESET search_path;

SQL simple para PostgreSQL 16 o 17 estándar, sin extensiones. Ejecútalo en una base de datos vacía que puedas descartar.

Fuentes

Documentación oficial de PostgreSQL (en inglés).

Términos relacionados