У меня есть база данных, и мне нужно знать кодировку по умолчанию для базы данных. Я хочу получить его из командной строки.
Получение кодировки базы данных Postgres
Ответ 1
Из командной строки:
psql my_database -c 'SHOW SERVER_ENCODING'
Внутри psql
, SQL IDE или API:
SHOW SERVER_ENCODING
Ответ 2
Способ 1:
Если вы уже вошли на сервер db, просто скопируйте и вставьте это.
SHOW SERVER_ENCODING;
Результат:
server_encoding
-----------------
UTF8
Для клиентского кодирования:
SHOW CLIENT_ENCODING;
Способ 2:
Снова, если вы уже вошли в систему, используйте это, чтобы получить результат на основе списка.
\l
Ответ 3
Программное решение:
SELECT pg_encoding_to_char(encoding) FROM pg_database WHERE datname = 'yourdb';
Ответ 4
Если вы хотите получить кодировки базы данных:
psql -U postgres -h somehost --list
Вы увидите что-то вроде:
List of databases
Name | Owner | Encoding
------------------------+----------+----------
db1 | postgres | UTF8
Ответ 5
TL;DR
SELECT character_set_name
FROM information_schema.character_sets
;
Стандартный способ: information_schema
Из стандартная SQL-схема information_schema
присутствует в каждой базе данных/каталоге, используйте определенное представление с именем character_sets
. Этот подход должен быть переносимым через все стандартные системы баз данных.
SELECT *
FROM information_schema.character_sets
;
Несмотря на то, что имя множественное, оно показывает только одну строку, сообщая о текущей базе данных/каталоге.
Третий столбец character_set_name
:
Название набора символов, в настоящее время реализованное как отображающее имя кодировки базы данных
Ответ 6
Потому что есть более чем один способ обрезать кошку:
psql -l
Показывает все имена базы данных, кодировку и т.д.