postgresql 获取Postgres数据库的编码

qmb5sa22  于 2023-02-04  发布在  PostgreSQL
关注(0)|答案(7)|浏览(498)

我有一个数据库,我需要知道数据库的默认编码。我想从命令行获取它。

smdnsysy

smdnsysy1#

从命令行:

psql my_database -c 'SHOW SERVER_ENCODING'

psql中,SQL IDE或API:

SHOW SERVER_ENCODING;
iecba09b

iecba09b2#

方法一:
如果您已经登录到数据库服务器,只需复制并粘贴此内容。

SHOW SERVER_ENCODING;

结果:

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

对于客户端编码:

SHOW CLIENT_ENCODING;

方法二:
同样,如果您已经登录,则使用此命令获取基于列表的结果

\l
o2g1uqev

o2g1uqev3#

程序化解决方案:

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

erhoui1w4#

如果要获取数据库编码:

psql  -U postgres -h somehost --list

您将看到类似以下内容:

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

7gs2gvoe5#

TL;医生

SELECT character_set_name 
FROM information_schema.character_sets 
;

标准方式:information_schema

从每个数据库/目录中存在的SQL-standard schemainformation_schema,使用名为character_sets的已定义视图。

SELECT * 
FROM information_schema.character_sets 
;

尽管名称是复数,但它只显示一行,报告当前数据库/目录。

第三列是character_set_name
字符集的名称,当前实现为显示数据库编码的名称

c6ubokkw

c6ubokkw6#

因为剥猫皮的方法不止一种:

psql -l

显示所有数据库名称、编码等。

z9gpfhce

z9gpfhce7#

获取服务器编码的另一种方法(在https://pgpedia.info/s/server_encoding.html中描述):

SELECT current_setting('server_encoding');

也可以使用类似的选择来获取其他设置,例如“client_encoding”。

相关问题