Глава 33. Информационная схема

Содержание

33.1. Схема
33.2. Типы данных
33.3. information_schema_catalog_name
33.4. administrable_role_authorizations
33.5. applicable_roles
33.6. attributes
33.7. character_sets
33.8. check_constraint_routine_usage
33.9. check_constraints
33.10. collations
33.11. collation_character_set_applicability
33.12. column_domain_usage
33.13. column_options
33.14. column_privileges
33.15. column_udt_usage
33.16. columns
33.17. constraint_column_usage
33.18. constraint_table_usage
33.19. data_type_privileges
33.20. domain_constraints
33.21. domain_udt_usage
33.22. domains
33.23. element_types
33.24. enabled_roles
33.25. foreign_data_wrapper_options
33.26. foreign_data_wrappers
33.27. foreign_server_options
33.28. foreign_servers
33.29. foreign_table_options
33.30. foreign_tables
33.31. key_column_usage
33.32. parameters
33.33. referential_constraints
33.34. role_column_grants
33.35. role_routine_grants
33.36. role_table_grants
33.37. role_udt_grants
33.38. role_usage_grants
33.39. routine_privileges
33.40. routines
33.41. schemata
33.42. sequences
33.43. sql_features
33.44. sql_implementation_info
33.45. sql_languages
33.46. sql_packages
33.47. sql_parts
33.48. sql_sizing
33.49. sql_sizing_profiles
33.50. table_constraints
33.51. table_privileges
33.52. tables
33.53. transforms
33.54. triggered_update_columns
33.55. triggers
33.56. udt_privileges
33.57. usage_privileges
33.58. user_defined_types
33.59. user_mapping_options
33.60. user_mappings
33.61. view_column_usage
33.62. view_routine_usage
33.63. view_table_usage
33.64. views

Информационная схема состоит из набора представлений, содержащих информацию об объектах, определённых в текущей базе данных. Информационная схема описана в стандарте SQL и поэтому можно рассчитывать на её переносимость и стабильность — в отличие от системных каталогов, которые привязаны к Postgres Pro, и моделируются, отталкиваясь от реализации. Представления информационной схемы, однако, не содержат информацию о функциях, присущих исключительно Postgres Pro; чтобы получить информацию о них, необходимо обратиться к системным каталогам или другим специфическим представлениям Postgres Pro.

Примечание

Когда из базы данных запрашивается информация об ограничениях, возможна ситуация, когда соответствующий стандарту запрос, который должен возвращать одну строку, возвращает несколько. Это связано с тем, что стандарт SQL требует, чтобы имена ограничений были уникальными в схеме, но в Postgres Pro такого требования нет. Имена ограничений, которые Postgres Pro генерирует автоматически, не должны дублироваться в одной схеме, но сами пользователи могут назначить подобные дублирующиеся имена.

Эта проблема может проявиться при обращении к таким представлениям информационной схемы, как check_constraint_routine_usage, check_constraints, domain_constraints и referential_constraints. В некоторых других представлениях она могла бы тоже иметь место, но они содержат имя таблицы, помогающее различить дублирующиеся строки, например: constraint_column_usage, constraint_table_usage, table_constraints.