PostgreSQL

PostgreSQLへの接続先確認

複数環境へ接続して作業する事が多いと「今何処につないだのか」認識する事はとても重要です。そんな時自分は以下でPostgreSQLへの接続確認をしています

接続先を確認する

接続先確認SQL
select 1 as item_no,'current_database' as item_name,cast(current_database() as text) as item_value
union select 2 as item_no,'version' as item_name,substring(version() from 'PostgreSQL [0-9|.]*') as item_value
union select 3 as item_no,'inet_server_addr' as item_name,cast(inet_server_addr() as text) as item_value
union select 4 as item_no,'inet_server_port' as item_name,cast(inet_server_port() as text) as item_value
union select 5 as item_no,'current_user' as item_name,cast(current_user as text) as item_value
union select 6 as item_no,'current_schema' as item_name,cast(current_schema() as text) as item_value
union select 7 as item_no,'inet_client_addr' as item_name,cast(inet_client_addr() as text) as item_value
order by item_no
;
接続先確認例
 item_no |    item_name     |   item_value
---------+------------------+-----------------
       1 | current_database | myposdb
       2 | version          | PostgreSQL 13.6
       3 | inet_server_addr | 192.168.3.22/32
       4 | inet_server_port | 5432
       5 | current_user     | sooni
       6 | current_schema   | sooni
       7 | inet_client_addr | 192.168.3.10/32
(7 rows)


myposdb=#

以下本家サイトを参考に作成しました。こちらにも記載していましたが、current_user はカッコなしで使わないといけません。ちなみにcurrent_shemaはカッコありでもなしでも動作しますが、current_databaseやversionはカッコありでないと動作しません。ちょっと統一感ないですね。
https://www.postgresql.jp/document/13/html/functions-info.html

個別解説

バージョン確認
select version();
カレントデータベース確認
select current_database();
information_schema.information_schema_catalog_name VIEWから確認
select catalog_name from information_schema.information_schema_catalog_name;
カレントユーザ確認
select current_user;
カレントスキーマ確認
select current_schema;

上記SQLはとても覚えられないのでファンクション化しました

セッション一覧を確認したい場合はこちら

スポンサーリンク