information_schema.tables
のようなテーブルをクエリすると
SELECT
table_catalog,
table_schema,
table_name
FROM information_schema.tables;
私はこのような結果を得ます、
table_catalog | table_schema | table_name
---------------+--------------------+---------------------------------------
myDB | mySchema | myTable
table_schema
からtable_name
とpg_catalog.tables
を取得できますが、table_catalog
を取得するにはどうすればよいですか。 _catalog
スキーマに格納されているpg_catalog
情報はどこにありますか?
ハードコーディングすることはできません。 current_database()
への呼び出しから文字どおりキャストされたテーブルスキーマの_catalog
列
CAST(current_database() AS sql_identifier) AS table_catalog,
ソースコードで定義されたものを見ることができます postgres/src/backend/catalog/information_schema.sql
information_schema_catalog_name
のドキュメントはそれを明示的にします
information_schema_catalog_name
は、[常に現在のデータベースの名前を含む1つの行と1つの列を含む](SQL用語では現在のカタログ)というテーブルです。
information_schema.tables
のドキュメントにも、
テーブルを含むデータベースの名前(常に現在のデータベース)