Получение кодировки базы данных Postgres - PullRequest
117 голосов
/ 23 июня 2011

У меня есть база данных, и мне нужно знать кодировку по умолчанию для базы данных.Я хочу получить его из командной строки.

Ответы [ 6 ]

145 голосов
/ 23 июня 2011

Из командной строки:

psql my_database -c 'SHOW SERVER_ENCODING'

Из psql, SQL IDE или API:

SHOW SERVER_ENCODING
44 голосов
/ 08 мая 2013

Метод 1:

Если вы уже вошли на сервер БД, просто скопируйте и вставьте его.

SHOW SERVER_ENCODING;

Результат:

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

Для кодировки клиента:

 SHOW CLIENT_ENCODING;

Метод 2:

Опять же, если вы уже вошли в систему, используйте это, чтобы получить результат на основе списка

\l 
33 голосов
/ 25 июня 2011

Программное решение:

SELECT pg_encoding_to_char(encoding) FROM pg_database WHERE datname = 'yourdb';
30 голосов
/ 23 июня 2011

Если вы хотите получить кодировки базы данных:

psql  -U postgres -h somehost --list

Вы увидите что-то вроде:

List of databases
           Name         |  Owner   | Encoding
------------------------+----------+----------
db1                     | postgres | UTF8
5 голосов
/ 06 октября 2017

Потому что есть несколько способов снять кожу с кошки:

psql -l

Показывает все имена баз данных, кодировку и т. Д.

4 голосов
/ 26 июля 2017

tl; dr

SELECT character_set_name 
FROM information_schema.character_sets 
;

Стандартный способ: information_schema

Из стандартной схемы SQL information_schema вкаждая база данных / каталог, используйте определенный вид с именем character_sets.Этот подход должен быть переносимым на все стандартные системы баз данных .

SELECT * 
FROM information_schema.character_sets 
;

Несмотря на множественное имя, он показывает только одну строку с отчетом о текущей базе данных / каталоге.

screenshot of pgAdmin 4 with results of query shown above

Третий столбец: character_set_name:

Имя набора символов, в настоящее время реализованное в виде имени базы данных.кодировка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...