Mendapatkan pengkodean database Postgres


143

Saya memiliki database, dan saya perlu mengetahui pengkodean default untuk database. Saya ingin mendapatkannya dari baris perintah.

Jawaban:


179

Dari baris perintah:

psql my_database -c 'SHOW SERVER_ENCODING'

Dari dalam psql, SQL IDE atau API:

SHOW SERVER_ENCODING

Bukankah itu pengaturan tingkat server (default yang digunakan untuk database yang baru dibuat) daripada pengaturan tingkat database / katalog yang diminta dalam pertanyaan?
Basil Bourque

5
Perhatikan bahwa dari dalam psql, perlu ada titik koma di akhir. yaitu SHOW SERVER_ENCODING;
Jon Bernhardt

50

Metode 1:

Jika Anda sudah masuk ke server db, cukup salin dan tempel ini.

SHOW SERVER_ENCODING;

Hasil:

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

Untuk pengkodean klien:

 SHOW CLIENT_ENCODING;

Metode 2:

Sekali lagi jika Anda sudah masuk, gunakan ini untuk mendapatkan hasil berbasis daftar

\l 

42

Solusi terprogram:

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

32

Jika Anda ingin mendapatkan pengkodean database:

psql  -U postgres -h somehost --list

Anda akan melihat sesuatu seperti:

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

13

Karena ada lebih dari satu cara untuk menguliti kucing:

psql -l

Menampilkan semua nama database, pengkodean, dan lainnya.


6

tl; dr

SELECT character_set_name 
FROM information_schema.character_sets 
;

Cara standar: information_schema

Dari skema standar SQL yang information_schema ada di setiap database / katalog, gunakan tampilan yang ditentukan bernama character_sets. Pendekatan ini harus portabel di semua sistem database standar .

SELECT * 
FROM information_schema.character_sets 
;

Meskipun namanya jamak, itu hanya menunjukkan satu baris, melaporkan pada database / katalog saat ini.

tangkapan layar pgAdmin 4 dengan hasil kueri yang ditunjukkan di atas

Kolom ketiga adalah character_set_name:

Nama himpunan karakter, saat ini diimplementasikan sebagai menunjukkan nama pengkodean database

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.