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.
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
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
Une solution programmatique:
SELECT pg_encoding_to_char(encoding) FROM pg_database WHERE datname = 'yourdb';
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
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.
SELECT character_set_name
FROM information_schema.character_sets
;
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.
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