Obtenir l'encodage D'une base de données Postgres
J'ai une base de données, et j'ai besoin de connaître l'encodage par défaut pour la base de données. Je veux obtenir à partir de la ligne de commande.
6 réponses
Depuis la ligne de commande:
psql my_database -c 'SHOW SERVER_ENCODING'
Depuis psql
, un IDE SQL ou une API:
SHOW SERVER_ENCODING
Méthode 1:
Si vous êtes déjà connecté au serveur db, 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 la liste
\l
Une solution programmatique:
SELECT pg_encoding_to_char(encoding) FROM pg_database WHERE datname = 'yourdb';
Si vous voulez 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
Tl; dr
SELECT character_set_name
FROM information_schema.character_sets
;
Manière Standard: information_schema
À partir du schéma SQL-standard information_schema
présent dans chaque base de données / Catalogue, utilisez la vue définie nommée character_sets
. Cette approche devrait être portable sur tous les systèmes de base de données standard .
SELECT *
FROM information_schema.character_sets
;
Bien que le nom soit pluriel, il n'affiche qu'une seule ligne, rendant compte de la base de données/catalogue en cours.
La troisième colonne est character_set_name
:
Nom du jeu de caractères, actuellement implémenté comme montrant le nom de l'encodage de la base de données
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, l'encodage, et plus encore.