web-dev-qa-db-fra.com

Obtenir le codage d'une base de données Postgres

J'ai une base de données et j'ai besoin de connaître le codage par défaut pour la base de données. Je veux l'obtenir à partir de la ligne de commande.

120
Roland

A partir de la ligne de commande:

psql my_database -c 'SHOW SERVER_ENCODING'

De psql, un SQL IDE ou une API:

SHOW SERVER_ENCODING
148
Bohemian

Méthode 1:

Si vous êtes déjà connecté au serveur de base de données, copiez-le et collez-le.

SHOW SERVER_ENCODING;

Résultat:

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

Pour l'encodage client:

 SHOW CLIENT_ENCODING;

Méthode 2:

Encore une fois si vous êtes déjà connecté, utilisez ceci pour obtenir le résultat basé sur une liste

\l 
45
RunningAdithya

Une solution programmatique:

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

Si vous souhaitez obtenir des encodages de base de données:

psql  -U postgres -h somehost --list

Vous verrez quelque chose comme:

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

Parce qu'il y a plus d'une façon de peler un chat:

psql -l

Affiche tous les noms de base de données, codage, etc.

6
AMADANON Inc.

tl; dr

SELECT character_set_name 
FROM information_schema.character_sets 
;

Voie standard: information_schema

À partir du schéma standard SQLinformation_schema présent dans chaque base de données/catalogue, utilisez la vue définie nommée character_sets . Cette approche devrait être portable entre tous les systèmes de base de données standard .

SELECT * 
FROM information_schema.character_sets 
;

Bien que le nom soit pluriel, il ne montre qu'une seule ligne, indiquant la base de données/catalogue actuelle.

screenshot of pgAdmin 4 with results of query shown above

La troisième colonne est character_set_name:

Nom du jeu de caractères, implémenté actuellement avec l'affichage du nom du codage de la base de données

4
Basil Bourque