Obtener la codificación de una base de datos Postgres


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

 100
Author: jpmc26, 2011-06-23

6 answers

Desde la línea de comandos:

psql my_database -c 'SHOW SERVER_ENCODING'

Desde psql, un IDE SQL o una API:

SHOW SERVER_ENCODING
 124
Author: Bohemian,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-01-22 21:21:06

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 la codificación del cliente:

 SHOW CLIENT_ENCODING;

Método 2:

De nuevo si ya ha iniciado sesión, use esto para obtener el resultado basado en la lista

\l 
 40
Author: RunningAdithya,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-28 05:40:07

Una solución programática:

SELECT pg_encoding_to_char(encoding) FROM pg_database WHERE datname = 'yourdb';
 29
Author: Peter Eisentraut,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-06-25 11:45:17

Si desea obtener codificaciones de base de datos:

psql  -U postgres -h somehost --list

Verás algo como:

List of databases
           Name         |  Owner   | Encoding
------------------------+----------+----------
db1                     | postgres | UTF8
 29
Author: Greenisha,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-02-08 11:06:09

Tl; dr

SELECT character_set_name 
FROM information_schema.character_sets 
;

Forma estándar: information_schema

Del esquema SQL-standard information_schema presente en cada base de datos / catálogo, utilice la vista definida llamada character_sets. Este enfoque debe ser portable a través de 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, reportando en la base de datos/catálogo actual.

captura de pantalla de pgAdmin 4 con los resultados de la consulta mostrada arriba

La tercera columna es character_set_name:

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

 3
Author: Basil Bourque,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-08-09 15:56:52

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

psql -l

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

 3
Author: AMADANON Inc.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-10-05 21:00:12