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

Содержание

39.1. Схема
39.2. Типы данных
39.3. information_schema_catalog_name
39.4. administrable_role_​authorizations
39.5. applicable_roles
39.6. attributes
39.7. character_sets
39.8. check_constraint_routine_usage
39.9. check_constraints
39.10. collations
39.11. collation_character_set_​applicability
39.12. column_column_usage
39.13. column_domain_usage
39.14. column_options
39.15. column_privileges
39.16. column_udt_usage
39.17. columns
39.18. constraint_column_usage
39.19. constraint_table_usage
39.20. data_type_privileges
39.21. domain_constraints
39.22. domain_udt_usage
39.23. domains
39.24. element_types
39.25. enabled_roles
39.26. foreign_data_wrapper_options
39.27. foreign_data_wrappers
39.28. foreign_server_options
39.29. foreign_servers
39.30. foreign_table_options
39.31. foreign_tables
39.32. key_column_usage
39.33. parameters
39.34. referential_constraints
39.35. role_column_grants
39.36. role_routine_grants
39.37. role_table_grants
39.38. role_udt_grants
39.39. role_usage_grants
39.40. routine_column_usage
39.41. routine_privileges
39.42. routine_routine_usage
39.43. routine_sequence_usage
39.44. routine_table_usage
39.45. routines
39.46. schemata
39.47. sequences
39.48. sql_features
39.49. sql_implementation_info
39.50. sql_parts
39.51. sql_sizing
39.52. table_constraints
39.53. table_privileges
39.54. tables
39.55. transforms
39.56. triggered_update_columns
39.57. triggers
39.58. udt_privileges
39.59. usage_privileges
39.60. user_defined_types
39.61. user_mapping_options
39.62. user_mappings
39.63. view_column_usage
39.64. view_routine_usage
39.65. view_table_usage
39.66. 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.