複数環境へ接続して作業する事が多いと「今何処につないだのか」認識する事はとても重要です。そんな時自分は以下で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;