web-dev-qa-db-ja.com

pg_catalogのどこに、データベースまたはカタログ情報が関係について保存されていますか?

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_namepg_catalog.tablesを取得できますが、table_catalogを取得するにはどうすればよいですか。 _catalogスキーマに格納されているpg_catalog情報はどこにありますか?

1
Evan Carroll

ハードコーディングすることはできません。 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 のドキュメントにも、

テーブルを含むデータベースの名前(常に現在のデータベース)

1
Evan Carroll