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

Содержание

38.1. Схема
38.2. Типы данных
38.3. information_schema_catalog_name
38.4. administrable_role_authorizations
38.5. applicable_roles
38.6. attributes
38.7. character_sets
38.8. check_constraint_routine_usage
38.9. check_constraints
38.10. collations
38.11. collation_character_set_applicability
38.12. column_column_usage
38.13. column_domain_usage
38.14. column_options
38.15. column_privileges
38.16. column_udt_usage
38.17. columns
38.18. constraint_column_usage
38.19. constraint_table_usage
38.20. data_type_privileges
38.21. domain_constraints
38.22. domain_udt_usage
38.23. domains
38.24. element_types
38.25. enabled_roles
38.26. foreign_data_wrapper_options
38.27. foreign_data_wrappers
38.28. foreign_server_options
38.29. foreign_servers
38.30. foreign_table_options
38.31. foreign_tables
38.32. key_column_usage
38.33. parameters
38.34. referential_constraints
38.35. role_column_grants
38.36. role_routine_grants
38.37. role_table_grants
38.38. role_udt_grants
38.39. role_usage_grants
38.40. routine_privileges
38.41. routines
38.42. schemata
38.43. sequences
38.44. sql_features
38.45. sql_implementation_info
38.46. sql_languages
38.47. sql_packages
38.48. sql_parts
38.49. sql_sizing
38.50. sql_sizing_profiles
38.51. table_constraints
38.52. table_privileges
38.53. tables
38.54. transforms
38.55. triggered_update_columns
38.56. triggers
38.57. udt_privileges
38.58. usage_privileges
38.59. user_defined_types
38.60. user_mapping_options
38.61. user_mappings
38.62. view_column_usage
38.63. view_routine_usage
38.64. view_table_usage
38.65. 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.