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.

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

¿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 

41

Una solución programática:

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

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

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.


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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.