Lấy mã hóa của cơ sở dữ liệu Postgres


141

Tôi có một cơ sở dữ liệu và tôi cần biết mã hóa mặc định cho cơ sở dữ liệu. Tôi muốn lấy nó từ dòng lệnh.

Câu trả lời:


175

Từ dòng lệnh:

psql my_database -c 'SHOW SERVER_ENCODING'

Từ bên trong psql, SQL IDE hoặc API:

SHOW SERVER_ENCODING

Không phải là cài đặt cấp máy chủ (mặc định được sử dụng cho cơ sở dữ liệu mới được tạo) chứ không phải là cài đặt cấp cơ sở dữ liệu / danh mục được yêu cầu trong Câu hỏi?
Basil Bourque

4
Lưu ý rằng từ bên trong psql, cần phải có dấu chấm phẩy ở cuối. tức là SHOW SERVER_ENCODING;
Jon Bernhardt

49

Cách 1:

Nếu bạn đã đăng nhập vào máy chủ db, chỉ cần sao chép và dán này.

SHOW SERVER_ENCODING;

Kết quả:

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

Đối với mã hóa Máy khách:

 SHOW CLIENT_ENCODING;

Cách 2:

Một lần nữa nếu bạn đã đăng nhập, sử dụng điều này để có được kết quả dựa trên danh sách

\l 

41

Một giải pháp lập trình:

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

32

Nếu bạn muốn nhận được mã hóa cơ sở dữ liệu:

psql  -U postgres -h somehost --list

Bạn sẽ thấy một cái gì đó như:

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

12

Bởi vì có nhiều hơn một cách để lột da một con mèo:

psql -l

Hiển thị tất cả các tên cơ sở dữ liệu, mã hóa, và nhiều hơn nữa.


5

tl; dr

SELECT character_set_name 
FROM information_schema.character_sets 
;

Cách tiêu chuẩn: information_schema

Từ lược đồ tiêu chuẩn SQL information_schema có trong mọi cơ sở dữ liệu / danh mục, hãy sử dụng khung nhìn được xác định có tên character_sets. Cách tiếp cận này nên được di động trên tất cả các hệ thống cơ sở dữ liệu tiêu chuẩn .

SELECT * 
FROM information_schema.character_sets 
;

Mặc dù tên là số nhiều, nó chỉ hiển thị một hàng duy nhất, báo cáo trên cơ sở dữ liệu / danh mục hiện tại.

ảnh chụp màn hình của pgAdmin 4 với kết quả truy vấn được hiển thị ở trên

Cột thứ ba là character_set_name:

Tên của bộ ký tự, hiện được triển khai như hiển thị tên của mã hóa cơ sở dữ liệu

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.