Вопрос:
У меня есть база данных, и мне нужно знать кодировку по умолчанию для базы данных. Я хочу получить его из командной строки.
Лучший ответ:
Из командной строки:
psql my_database -c ‘SHOW SERVER_ENCODING’
Внутри psql, SQL IDE или API:
SHOW SERVER_ENCODING Ответ №1
Способ 1:
Если вы уже вошли на сервер db, просто скопируйте и вставьте это.
SHOW SERVER_ENCODING;
Результат:
server_encoding —————— UTF8
Для клиентского кодирования:
SHOW CLIENT_ENCODING;
Способ 2:
Снова, если вы уже вошли в систему, используйте это, чтобы получить результат на основе списка.
l Ответ №2
Программное решение:
SELECT pg_encoding_to_char(encoding) FROM pg_database WHERE datname = ‘yourdb’; Ответ №3
Если вы хотите получить кодировки базы данных:
psql -U postgres -h somehost —list
Вы увидите что-то вроде:
List of databases Name | Owner | Encoding ————————+———-+———- db1 | postgres | UTF8 Ответ №4
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:
Название набора символов, в настоящее время реализованное как отображающее имя кодировки базы данных
Ответ №5
Потому что есть более чем один способ обрезать кошку:
psql -l
Показывает все имена базы данных, кодировку и т.д.