Obtendo a codificação de um banco de dados Postgres


141

Eu tenho um banco de dados e preciso saber a codificação padrão para o banco de dados. Eu quero obtê-lo da linha de comando.

Respostas:


175

Na linha de comando:

psql my_database -c 'SHOW SERVER_ENCODING'

De dentro psql, um IDE SQL ou uma API:

SHOW SERVER_ENCODING

Não é essa a configuração no nível do servidor (o padrão usado para bancos de dados criados recentemente) em vez da configuração no nível de banco de dados / catálogo solicitada na pergunta?
Basil Bourque

4
Observe que, no psql, é necessário que haja um ponto-e-vírgula no final. ie SHOW SERVER_ENCODING;
Jon Bernhardt

49

Método 1:

Se você já está logado no servidor db, copie e cole.

SHOW SERVER_ENCODING;

Resultado:

  server_encoding 
-----------------  
UTF8

Para codificação de cliente:

 SHOW CLIENT_ENCODING;

Método 2:

Novamente, se você já está logado, use isso para obter o resultado com base na lista

\l 

41

Uma solução programática:

SELECT pg_encoding_to_char(encoding) FROM pg_database WHERE datname = 'yourdb';

32

Se você deseja obter codificações de banco de dados:

psql  -U postgres -h somehost --list

Você verá algo como:

List of databases
           Name         |  Owner   | Encoding
------------------------+----------+----------
db1                     | postgres | UTF8

12

Porque há mais de uma maneira de esfolar um gato:

psql -l

Mostra todos os nomes, codificação e mais do banco de dados.


5

tl; dr

SELECT character_set_name 
FROM information_schema.character_sets 
;

Maneira padrão: information_schema

No esquema padrão do SQLinformation_schema presente em cada banco de dados / catálogo, use a visualização definida denominada character_sets. Essa abordagem deve ser portátil em todos os sistemas de banco de dados padrão .

SELECT * 
FROM information_schema.character_sets 
;

Apesar de o nome ser plural, ele mostra apenas uma única linha, relatando o banco de dados / catálogo atual.

captura de tela do pgAdmin 4 com resultados da consulta mostrada acima

A terceira coluna é character_set_name:

Nome do conjunto de caracteres, atualmente implementado como mostrando o nome da codificação do banco de dados

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.