Obtener la codificación de una base de datos Postgres

141

Tengo una base de datos y necesito saber la codificación predeterminada para la base de datos. Quiero obtenerlo desde la línea de comando.

Elitmiar
fuente

Respuestas:

175

Desde la línea de comando:

psql my_database -c 'SHOW SERVER_ENCODING'

Desde dentro psql, un SQL IDE o una API:

SHOW SERVER_ENCODING
Bohemio
fuente
¿No es esa la configuración de nivel de servidor (el valor predeterminado utilizado para las bases de datos recién creadas) en lugar de la configuración de nivel de base de datos / catálogo solicitada en la Pregunta?
Basil Bourque
44
Tenga en cuenta que desde psql, debe haber un punto y coma al final. es decir SHOW SERVER_ENCODING;
Jon Bernhardt
49

Método 1:

Si ya ha iniciado sesión en el servidor db, simplemente copie y pegue esto.

SHOW SERVER_ENCODING;

Resultado:

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

Para codificación de cliente:

 SHOW CLIENT_ENCODING;

Método 2:

Nuevamente, si ya inició sesión, use esto para obtener el resultado basado en la lista

\l 
RunningAdithya
fuente
41

Una solución programática:

SELECT pg_encoding_to_char(encoding) FROM pg_database WHERE datname = 'yourdb';
Peter Eisentraut
fuente
32

Si desea obtener codificaciones de la base de datos:

psql  -U postgres -h somehost --list

Verás algo como:

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

Porque hay más de una forma de pelar un gato:

psql -l

Muestra todos los nombres de bases de datos, codificación y más.

AMADANON Inc.
fuente
5

tl; dr

SELECT character_set_name 
FROM information_schema.character_sets 
;

Forma estándar: information_schema

Desde el esquema estándar SQL information_schema presente en cada base de datos / catálogo, use la vista definida llamada character_sets. Este enfoque debe ser portátil en todos los sistemas de bases de datos estándar .

SELECT * 
FROM information_schema.character_sets 
;

A pesar de que el nombre es plural, muestra solo una fila, que informa sobre la base de datos / catálogo actual.

captura de pantalla de pgAdmin 4 con los resultados de la consulta que se muestran arriba

La tercera columna es character_set_name:

Nombre del conjunto de caracteres, actualmente implementado como muestra el nombre de la codificación de la base de datos

Albahaca Bourque
fuente