我有一个数据库,我需要知道数据库的默认编码。我想从命令行获取它。
smdnsysy1#
从命令行:
psql my_database -c 'SHOW SERVER_ENCODING'
在psql中,SQL IDE或API:
psql
SHOW SERVER_ENCODING;
iecba09b2#
方法一:如果您已经登录到数据库服务器,只需复制并粘贴此内容。
结果:
server_encoding ----------------- UTF8
对于客户端编码:
SHOW CLIENT_ENCODING;
方法二:同样,如果您已经登录,则使用此命令获取基于列表的结果
\l
o2g1uqev3#
程序化解决方案:
SELECT pg_encoding_to_char(encoding) FROM pg_database WHERE datname = 'yourdb';
erhoui1w4#
如果要获取数据库编码:
psql -U postgres -h somehost --list
您将看到类似以下内容:
List of databases Name | Owner | Encoding ------------------------+----------+---------- db1 | postgres | UTF8
7gs2gvoe5#
SELECT character_set_name FROM information_schema.character_sets ;
information_schema
从每个数据库/目录中存在的SQL-standard schemainformation_schema,使用名为character_sets的已定义视图。
character_sets
SELECT * FROM information_schema.character_sets ;
尽管名称是复数,但它只显示一行,报告当前数据库/目录。
第三列是character_set_name:字符集的名称,当前实现为显示数据库编码的名称
character_set_name
c6ubokkw6#
因为剥猫皮的方法不止一种:
psql -l
显示所有数据库名称、编码等。
z9gpfhce7#
获取服务器编码的另一种方法(在https://pgpedia.info/s/server_encoding.html中描述):
SELECT current_setting('server_encoding');
也可以使用类似的选择来获取其他设置,例如“client_encoding”。
7条答案
按热度按时间smdnsysy1#
从命令行:
在
psql
中,SQL IDE或API:iecba09b2#
方法一:
如果您已经登录到数据库服务器,只需复制并粘贴此内容。
结果:
对于客户端编码:
方法二:
同样,如果您已经登录,则使用此命令获取基于列表的结果
o2g1uqev3#
程序化解决方案:
erhoui1w4#
如果要获取数据库编码:
您将看到类似以下内容:
7gs2gvoe5#
TL;医生
标准方式:
information_schema
从每个数据库/目录中存在的SQL-standard schema
information_schema
,使用名为character_sets
的已定义视图。尽管名称是复数,但它只显示一行,报告当前数据库/目录。
第三列是
character_set_name
:字符集的名称,当前实现为显示数据库编码的名称
c6ubokkw6#
因为剥猫皮的方法不止一种:
显示所有数据库名称、编码等。
z9gpfhce7#
获取服务器编码的另一种方法(在https://pgpedia.info/s/server_encoding.html中描述):
也可以使用类似的选择来获取其他设置,例如“client_encoding”。