Uzyskanie kodowania bazy danych Postgres

141

Mam bazę danych i muszę znać domyślne kodowanie bazy danych. Chcę go pobrać z wiersza poleceń.

Elitmiar
źródło

Odpowiedzi:

175

Z wiersza poleceń:

psql my_database -c 'SHOW SERVER_ENCODING'

Od wewnątrz psql, SQL IDE lub API:

SHOW SERVER_ENCODING
Czeski
źródło
Czy nie jest to ustawienie na poziomie serwera (domyślne używane dla nowo utworzonych baz danych), a nie ustawienie na poziomie bazy danych / katalogu, o które jest pytana w pytaniu?
Basil Bourque
4
Zauważ, że w psql na końcu musi znajdować się średnik. tj. SHOW SERVER_ENCODING;
Jon Bernhardt
49

Metoda 1:

Jeśli jesteś już zalogowany na serwerze db, po prostu skopiuj i wklej to.

SHOW SERVER_ENCODING;

Wynik:

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

Do kodowania klienta:

 SHOW CLIENT_ENCODING;

Metoda 2:

Ponownie, jeśli jesteś już zalogowany, użyj tego, aby uzyskać wynik oparty na liście

\l 
RunningAdithya
źródło
41

Rozwiązanie programowe:

SELECT pg_encoding_to_char(encoding) FROM pg_database WHERE datname = 'yourdb';
Peter Eisentraut
źródło
32

Jeśli chcesz uzyskać kodowanie bazy danych:

psql  -U postgres -h somehost --list

Zobaczysz coś takiego:

List of databases
           Name         |  Owner   | Encoding
------------------------+----------+----------
db1                     | postgres | UTF8
Greenisha
źródło
12

Ponieważ istnieje więcej niż jeden sposób na oskórowanie kota:

psql -l

Wyświetla wszystkie nazwy baz danych, kodowanie i nie tylko.

AMADANON Inc.
źródło
5

tl; dr

SELECT character_set_name 
FROM information_schema.character_sets 
;

Standardowy sposób: information_schema

Ze standardowego schematu SQL information_schema obecnego w każdej bazie danych / katalogu użyj zdefiniowanego widoku o nazwie character_sets. To podejście powinno być przenośne we wszystkich standardowych systemach baz danych .

SELECT * 
FROM information_schema.character_sets 
;

Mimo że nazwa jest w liczbie mnogiej, pokazuje tylko jeden wiersz raportujący o bieżącej bazie danych / katalogu.

zrzut ekranu pgAdmin 4 z wynikami zapytania pokazanymi powyżej

Trzecia kolumna to character_set_name:

Nazwa zestawu znaków, aktualnie zaimplementowana jako pokazująca nazwę kodowania bazy danych

Basil Bourque
źródło