第 32章情報スキーマ

目次
32.1. スキーマ
32.2. データ型
32.3. information_schema_catalog_name
32.4. applicable_roles
32.5. check_constraints
32.6. column_domain_usage
32.7. column_privileges
32.8. column_udt_usage
32.9. columns
32.10. constraint_column_usage
32.11. constraint_table_usage
32.12. data_type_privileges
32.13. domain_constraints
32.14. domain_udt_usage
32.15. domains
32.16. element_types
32.17. enabled_roles
32.18. key_column_usage
32.19. parameters
32.20. referential_constraints
32.21. role_column_grants
32.22. role_routine_grants
32.23. role_table_grants
32.24. role_usage_grants
32.25. routine_privileges
32.26. routines
32.27. schemata
32.28. sql_features
32.29. sql_implementation_info
32.30. sql_languages
32.31. sql_packages
32.32. sql_sizing
32.33. sql_sizing_profiles
32.34. table_constraints
32.35. table_privileges
32.36. tables
32.37. triggers
32.38. usage_privileges
32.39. view_column_usage
32.40. view_table_usage
32.41. views

情報スキーマは、現在のデータベースで定義されたオブジェクトについての情報を持つビューの集合から構成されます。 情報スキーマは標準SQLで定義されています。 したがって、PostgreSQLに特化し、実装上の事項にならって作成されるシステムカタログとは異なり、移植性があり、安定性を保持できるものと期待することができます。 しかし、情報スキーマのビューには、PostgreSQL固有の機能についての情報が含まれています。 これに問い合わせを行うためには、システムカタログもしくはPostgreSQL固有のビューに問い合わせを行う必要があります。

32.1. スキーマ

情報スキーマ自身は、information_schemaという名前のスキーマです。 このスキーマは自動的にすべてのデータベース内に存在します。 このスキーマの所有者は、クラスタ内の最初のデータベースユーザであり、当然このユーザは、スキーマの削除を含む、スキーマについてのすべての権限を持ちます。 (しかし、これによる領域の節約は非常に少量です。)

デフォルトでは、情報スキーマはスキーマの検索パスには含まれません。 ですので、修飾した名前で情報スキーマ内のすべてのオブジェクトにアクセスする必要があります。 情報スキーマ内の一部のオブジェクトの名前はユーザアプリケーションでも使用されるような一般的な名前であるため、情報スキーマをパスに追加する場合は注意しなければなりません。