2.20. Esquemas

Um banco de dados no PostgreSQL pode ser organizado logicamente através do uso de esquemas (SCHEMA). Por padrão, ao criar um banco de dados a partir do banco template1, haverá um esquema geral chamado public. Através do comando CREATE SCHEMA nome-esquema, podemos criar novos esquemas e associar as tabelas e outros objetos do banco a esse esquema.

Vamos criar um esquema chamado geo:

CREATE SCHEMA geo;

Dica

Após executar o comando acima, veja os esquemas apresentados na interface gráfica do pgAdmin.

Em seguida, vamos criar uma nova tabela chamada foco que será associada a esse esquema:

CREATE TABLE geo.foco
(
    id                  UUID PRIMARY KEY DEFAULT gen_random_uuid(),
    latitude            DOUBLE PRECISION,
    longitude           DOUBLE PRECISION,
    num_dias_sem_chuva  INTEGER,
    frp                 NUMERIC(4,1),
    data                TIMESTAMP WITHOUT TIME ZONE,
    satelite            VARCHAR(30)
);

Repare no comando acima que utilizamos a notação qualificada para o nome da tabela: geo.foco.

Para se referir a essa tabela, devemos utilizar o nome do esquema, uma vez que ele não é o esquema padrão para o nosso usuário:

INSERT INTO geo.foco (latitude, longitude, num_dias_sem_chuva, frp, data, satelite)
              VALUES (-9.41792, -51.65176, 30, 89, '2022-09-01 16:30:00', 'AQUA');
SELECT * FROM geo.foco;

Para apagar um esquema e todos os objetos associados a ele, use o comando DROP SCHEMA nome-esquema CASCADE, como mostrado abaixo:

DROP SCHEMA geo CASCADE;

Resultado:

NOTICE:  drop cascades to table geo.foco
DROP SCHEMA

Dica

Para uma discussão detalhada do suporte a esquemas no PostgreSQL, veja 5.9. Schemas.