Abrufen der Codierung einer Postgres-Datenbank

141

Ich habe eine Datenbank und muss die Standardcodierung für die Datenbank kennen. Ich möchte es von der Kommandozeile bekommen.

Elitmiar
quelle

Antworten:

175

Über die Befehlszeile:

psql my_database -c 'SHOW SERVER_ENCODING'

Von innen psqleine SQL IDE oder eine API:

SHOW SERVER_ENCODING
Böhmisch
quelle
Ist das nicht die Einstellung auf Serverebene (die Standardeinstellung für neu erstellte Datenbanken) und nicht die Einstellung auf Datenbank- / Katalogebene, die in der Frage gefordert wird?
Basil Bourque
4
Beachten Sie, dass innerhalb von psql am Ende ein Semikolon stehen muss. dh SHOW SERVER_ENCODING;
Jon Bernhardt
49

Methode 1:

Wenn Sie bereits beim Datenbankserver angemeldet sind, kopieren Sie diese einfach und fügen Sie sie ein.

SHOW SERVER_ENCODING;

Ergebnis:

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

Für die Client-Codierung:

 SHOW CLIENT_ENCODING;

Methode 2:

Wenn Sie bereits angemeldet sind, verwenden Sie dies erneut, um das listenbasierte Ergebnis zu erhalten

\l 
RunningAdithya
quelle
40

Eine programmatische Lösung:

SELECT pg_encoding_to_char(encoding) FROM pg_database WHERE datname = 'yourdb';
Peter Eisentraut
quelle
32

Wenn Sie Datenbankcodierungen erhalten möchten:

psql  -U postgres -h somehost --list

Sie werden so etwas sehen wie:

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

Weil es mehr als einen Weg gibt, eine Katze zu häuten:

psql -l

Zeigt alle Datenbanknamen, Codierungen und mehr an.

AMADANON Inc.
quelle
5

tl; dr

SELECT character_set_name 
FROM information_schema.character_sets 
;

Standard Weg: information_schema

Aus dem SQL-Standardschema information_schema in jeder Datenbank / Katalog, verwenden Sie die definierte Ansicht genannt character_sets. Dieser Ansatz sollte auf alle Standarddatenbanksysteme portierbar sein .

SELECT * 
FROM information_schema.character_sets 
;

Obwohl der Name Plural ist, wird nur eine einzelne Zeile angezeigt, die über die aktuelle Datenbank / den aktuellen Katalog berichtet.

Screenshot von pgAdmin 4 mit den oben gezeigten Abfrageergebnissen

Die dritte Spalte lautet character_set_name:

Name des Zeichensatzes, der derzeit so implementiert ist, dass er den Namen der Datenbankcodierung anzeigt

Basil Bourque
quelle