Отримання кодування бази даних Postgres


141

У мене є база даних, і мені потрібно знати кодування за базою даних за замовчуванням. Я хочу отримати це з командного рядка.

Відповіді:


175

З командного рядка:

psql my_database -c 'SHOW SERVER_ENCODING'

Зсередини psql, SQL IDE або API:

SHOW SERVER_ENCODING

Це не налаштування на рівні сервера (за замовчуванням, що використовується для новостворених баз даних), а не налаштування на рівні бази даних / каталогів, про яке запитується у Питання?
Василь Бурк

4
Зауважте, що всередині psql в кінці має бути крапка з комою. тобто SHOW SERVER_ENCODING;
Джон Бернхардт

49

Спосіб 1:

Якщо ви вже увійшли на сервер db, просто скопіюйте та вставте це.

SHOW SERVER_ENCODING;

Результат:

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

Для кодування клієнта:

 SHOW CLIENT_ENCODING;

Спосіб 2:

Знову ж таки, якщо ви вже ввійшли в систему, використовуйте це, щоб отримати результат на основі списку

\l 


32

Якщо ви хочете отримати кодування бази даних:

psql  -U postgres -h somehost --list

Ви побачите щось на кшталт:

List of databases
           Name         |  Owner   | Encoding
------------------------+----------+----------
db1                     | postgres | UTF8

12

Тому що існує кілька способів шкіряти кота:

psql -l

Показує всі назви баз даних, кодування тощо.


5

тл; д-р

SELECT character_set_name 
FROM information_schema.character_sets 
;

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

У стандартній схемі SQL, information_schema присутній у кожній базі даних / каталозі, використовуйте визначений вид з назвою character_sets. Цей підхід повинен бути портативним у всіх стандартних системах баз даних .

SELECT * 
FROM information_schema.character_sets 
;

Незважаючи на те, що назва множинна, вона показує лише один рядок, звітуючи про поточну базу даних / каталог.

скріншот pgAdmin 4 з результатами запиту, показаними вище

Третій стовпець character_set_name:

Ім'я набору символів, реалізованого в даний час як відображення імені кодування бази даних

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.