Postgresデータベースのエンコーディングの取得


141

データベースがあり、データベースのデフォルトのエンコーディングを知る必要があります。コマンドラインから取得したいのですが。

回答:


175

コマンドラインから:

psql my_database -c 'SHOW SERVER_ENCODING'

psqlから、SQL IDEまたはAPI:

SHOW SERVER_ENCODING

質問で求められたデータベース/カタログレベルの設定ではなく、サーバーレベルの設定(新しく作成されたデータベースに使用されるデフォルト)ではありませんか?
バジルブルク2017

4
psql内から、最後にセミコロンが必要であることに注意してください。ie SHOW SERVER_ENCODING;
Jon Bernhardt

49

方法1:

すでにdbサーバーにログインしている場合は、これをコピーして貼り付けます。

SHOW SERVER_ENCODING;

結果:

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

クライアントエンコーディングの場合:

 SHOW CLIENT_ENCODING;

方法2:

すでにログインしている場合は、これを使用してリストに基づく結果を取得します

\l 


32

データベースのエンコーディングを取得したい場合:

psql  -U postgres -h somehost --list

次のようなものが表示されます。

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

12

猫の皮をむく方法は複数あるので:

psql -l

すべてのデータベース名、エンコーディングなどを表示します。


5

tl; dr

SELECT character_set_name 
FROM information_schema.character_sets 
;

標準的な方法: information_schema

すべてのデータベース/カタログに存在するSQL標準スキーマ から、information_schemaという名前の定義済みビューを使用しますcharacter_sets。このアプローチは、すべての標準データベースシステム間で移植可能でなければなりません。

SELECT * 
FROM information_schema.character_sets 
;

名前が複数であっても、現在のデータベース/カタログについてレポートする単一の行のみが表示されます。

上記のクエリ結果を含むpgAdmin 4のスクリーンショット

3列目はcharacter_set_name次のとおりです。

文字セットの名前。現在、データベースエンコーディングの名前を示すものとして実装されています

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.