他のバージョンの文書 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

第37章 情報スキーマ

目次

37.1. スキーマ
37.2. データ型
37.3. information_schema_catalog_name
37.4. administrable_role_authorizations
37.5. applicable_roles
37.6. attributes
37.7. character_sets
37.8. check_constraint_routine_usage
37.9. check_constraints
37.10. collations
37.11. collation_character_set_applicability
37.12. column_domain_usage
37.13. column_options
37.14. column_privileges
37.15. column_udt_usage
37.16. columns
37.17. constraint_column_usage
37.18. constraint_table_usage
37.19. data_type_privileges
37.20. domain_constraints
37.21. domain_udt_usage
37.22. domains
37.23. element_types
37.24. enabled_roles
37.25. foreign_data_wrapper_options
37.26. foreign_data_wrappers
37.27. foreign_server_options
37.28. foreign_servers
37.29. foreign_table_options
37.30. foreign_tables
37.31. key_column_usage
37.32. parameters
37.33. referential_constraints
37.34. role_column_grants
37.35. role_routine_grants
37.36. role_table_grants
37.37. role_udt_grants
37.38. role_usage_grants
37.39. routine_privileges
37.40. routines
37.41. schemata
37.42. sequences
37.43. sql_features
37.44. sql_implementation_info
37.45. sql_languages
37.46. sql_packages
37.47. sql_parts
37.48. sql_sizing
37.49. sql_sizing_profiles
37.50. table_constraints
37.51. table_privileges
37.52. tables
37.53. transforms
37.54. triggered_update_columns
37.55. triggers
37.56. udt_privileges
37.57. usage_privileges
37.58. user_defined_types
37.59. user_mapping_options
37.60. user_mappings
37.61. view_column_usage
37.62. view_routine_usage
37.63. view_table_usage
37.64. views

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

注記

制約情報についてデータベースに問い合わせるとき、一行を返すことが想定される標準に準拠したクエリが数行の結果を返す場合があります。 これは、制約名がスキーマ内で一意になることをSQL標準が要求しているのに対して、PostgreSQLはこの制約を強制しないためです。 PostgreSQLは自動生成される制約の名前がスキーマ内で重複することを防ぎますが、ユーザは重複する名前を指定できます。

この問題は、check_constraint_routine_usagecheck_constraintsdomain_constraintsreferential_constraintsといった情報スキーマビューを検索するときに表面化することがあります。 いくつかの他のビューにも同様の問題がありますが、重複行を識別する助けになるテーブル名を含んでいます。例えばconstraint_column_usageconstraint_table_usagetable_constraintsなどです。