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.
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
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
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';
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
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.
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
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.
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