Ottenere la codifica di un database Postgres


141

Ho un database e devo conoscere la codifica predefinita per il database. Voglio ottenerlo dalla riga di comando.

Risposte:


175

Dalla riga di comando:

psql my_database -c 'SHOW SERVER_ENCODING'

Dall'interno psql, un IDE SQL o un'API:

SHOW SERVER_ENCODING

Non è l'impostazione a livello di server (l'impostazione predefinita utilizzata per i database appena creati) anziché l'impostazione a livello di database / catalogo richiesta nella domanda?
Basil Bourque,

4
Si noti che all'interno di psql, alla fine deve essere presente un punto e virgola. cioè SHOW SERVER_ENCODING;
Jon Bernhardt,

49

Metodo 1:

Se hai già effettuato l'accesso al server db, copialo e incollalo.

SHOW SERVER_ENCODING;

Risultato:

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

Per la codifica client:

 SHOW CLIENT_ENCODING;

Metodo 2:

Ancora una volta, se hai già effettuato l'accesso, utilizza questo per ottenere il risultato basato sull'elenco

\l 

41

Una soluzione programmatica:

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

32

Se si desidera ottenere le codifiche del database:

psql  -U postgres -h somehost --list

Vedrai qualcosa del tipo:

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

12

Perché c'è più di un modo per scuoiare un gatto:

psql -l

Mostra tutti i nomi di database, la codifica e altro.


5

tl; dr

SELECT character_set_name 
FROM information_schema.character_sets 
;

Modo standard: information_schema

Dallo schema standard SQL information_schema presente in ogni database / catalogo, utilizzare la vista definita denominata character_sets. Questo approccio dovrebbe essere portatile su tutti i sistemi di database standard .

SELECT * 
FROM information_schema.character_sets 
;

Nonostante il nome sia plurale, mostra solo una singola riga, riferendo sul database / catalogo corrente.

screenshot di pgAdmin 4 con i risultati della query mostrati sopra

La terza colonna è character_set_name:

Nome del set di caratteri, attualmente implementato come mostrando il nome della codifica del database

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.