Uzyskanie kodowania bazy danych Postgres


141

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

Odpowiedzi:


175

Z wiersza poleceń:

psql my_database -c 'SHOW SERVER_ENCODING'

Od wewnątrz psql, SQL IDE lub API:

SHOW SERVER_ENCODING

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 

41

Rozwiązanie programowe:

SELECT pg_encoding_to_char(encoding) FROM pg_database WHERE datname = 'yourdb';

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

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.


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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.