52.15. pg_database #

O catálogo pg_database armazena informações sobre os bancos de dados disponíveis. Os bancos de dados são criados com o comando CREATE DATABASE. Veja Gerenciamento de bancos de dados para obter detalhes sobre o significado de alguns dos parâmetros.

Diferentemente da maioria dos catálogos de sistema, o catálogo pg_database é compartilhado por todos os bancos de dados da instância: há apenas uma cópia de pg_database por instância, e não uma por banco de dados.

Tabela 52.15. Colunas de pg_database

Coluna Tipo de dados

Descrição

oid oid

Identificador da linha

datname name

Nome do banco de dados

datdba oid (referencia pg_authid.oid)

O dono do banco de dados, geralmente o usuário que o criou

encoding int4

Codificação de caracteres para este banco de dados (a função pg_encoding_to_char() pode traduzir este número para o nome da codificação)

datlocprovider char

Provedor de localidade para este banco de dados: b = integrado (builtin), c = libc, i = icu

datistemplate bool

Se for verdade, então este banco de dados pode ser clonado por qualquer usuário com privilégios CREATEDB; se for falso, apenas os superusuários ou o dono do banco de dados poderão cloná-lo.

datallowconn bool

Se for falso, ninguém poderá se conectar a este banco de dados. Isto é usado para proteger o banco de dados template0 de ser alterado.

dathasloginevt bool

Indica que existem gatilhos de evento de conexão (login) definidos para este banco de dados. Este sinalizador é usado para evitar consultas adicionais à tabela pg_event_trigger durante a ativação de cada processo servidor em segundo plano (backend). Este sinalizador é usado internamente pelo PostgreSQL não devendo ser alterado manualmente nem lido para fins de monitoramento.

datconnlimit int4

Define o número máximo de conexões simultâneas que podem ser estabelecidas com este banco de dados. -1 significa sem limite; -2 indica que o banco de dados é inválido.

datfrozenxid xid

Todos os IDs de transação anteriores a este foram substituídos por um ID de transação permanente (congelado) neste banco de dados. É usado para rastrear se o banco de dados precisa ser limpo para evitar o reinício do ID da transação, ou para permitir que pg_xact seja encolhido. É o menor dos valores de pg_class.relfrozenxid por tabela.

datminmxid xid

Todos os IDs multixact anteriores a este foram substituídos por um ID de transação neste banco de dados. É usado para rastrear se o banco de dados precisa ser limpo para evitar o reinício do ID multixact, ou para permitir que pg_multixact seja encolhido. É o menor dos valores de pg_class.relminmxid por tabela.

dattablespace oid (referencia pg_tablespace.oid)

O espaço de tabela padrão do banco de dados. Neste banco de dados, todas as tabelas para as quais pg_class.reltablespace for zero serão armazenadas neste espaço de tabelas; em particular, todos os catálogos do sistema não compartilhados estarão lá.

datcollate text

LC_COLLATE para este banco de dados

datctype text

LC_CTYPE para este banco de dados

datlocale text

Nome do provedor de localidade de ordenação para este banco de dados. Se o provedor for a libc, datlocale será NULL; datcollate e datctype serão usados em seu lugar.

daticurules text

Regras de ordenação ICU para este banco de dados

datcollversion text

Versão específica do provedor de ordenação. É registrada quando o banco de dados é criado e, posteriormente, verificado durante o uso, para detectar alterações na definição de ordenação que poderiam levar à corrupção de dados.

datacl aclitem[]

Privilégios de acesso; veja Privilégios para obter detalhes


Exemplo 52.8. Exemplo do tradutor

Bancos de dados do usuário corrente

Uso do catálogo pg_database para mostrar algumas informações sobre os bancos de dados do usuário corrente, que no caso é a usuária ana.

ana=> SELECT oid,
ana-> datname,
ana-> datdba::regrole::text,
ana-> datlocprovider,
ana-> pg_encoding_to_char(encoding) AS encoding,
ana-> datcollate,
ana-> datctype
ana-> FROM pg_database
ana-> WHERE datdba = CURRENT_USER::regrole::oid
ana-> ORDER BY oid\gx

-[ RECORD 1 ]--+------------
oid            | 34377
datname        | ana
datdba         | ana
datlocprovider | c
encoding       | UTF8
datcollate     | pt_BR.UTF-8
datctype       | pt_BR.UTF-8
-[ RECORD 2 ]--+------------
oid            | 108629
datname        | vismat
datdba         | ana
datlocprovider | c
encoding       | UTF8
datcollate     | pt_BR.UTF-8
datctype       | pt_BR.UTF-8
-[ RECORD 3 ]--+------------
oid            | 108777
datname        | calçados
datdba         | ana
datlocprovider | c
encoding       | UTF8
datcollate     | pt_BR.UTF-8
datctype       | pt_BR.UTF-8


52.15.1. Veja também #

CREATE DATABASE, ALTER DATABASE, DROP DATABASE