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

Содержание

40.1. Схема
40.2. Типы данных
40.3. information_schema_catalog_name
40.4. administrable_role_​authorizations
40.5. applicable_roles
40.6. attributes
40.7. character_sets
40.8. check_constraint_routine_usage
40.9. check_constraints
40.10. collations
40.11. collation_character_set_​applicability
40.12. column_column_usage
40.13. column_domain_usage
40.14. column_options
40.15. column_privileges
40.16. column_udt_usage
40.17. columns
40.18. constraint_column_usage
40.19. constraint_table_usage
40.20. data_type_privileges
40.21. domain_constraints
40.22. domain_udt_usage
40.23. domains
40.24. element_types
40.25. enabled_roles
40.26. foreign_data_wrapper_options
40.27. foreign_data_wrappers
40.28. foreign_server_options
40.29. foreign_servers
40.30. foreign_table_options
40.31. foreign_tables
40.32. key_column_usage
40.33. parameters
40.34. referential_constraints
40.35. role_column_grants
40.36. role_routine_grants
40.37. role_table_grants
40.38. role_udt_grants
40.39. role_usage_grants
40.40. routine_column_usage
40.41. routine_privileges
40.42. routine_routine_usage
40.43. routine_sequence_usage
40.44. routine_table_usage
40.45. routines
40.46. schemata
40.47. sequences
40.48. sql_features
40.49. sql_implementation_info
40.50. sql_parts
40.51. sql_sizing
40.52. table_constraints
40.53. table_privileges
40.54. tables
40.55. transforms
40.56. triggered_update_columns
40.57. triggers
40.58. udt_privileges
40.59. usage_privileges
40.60. user_defined_types
40.61. user_mapping_options
40.62. user_mappings
40.63. view_column_usage
40.64. view_routine_usage
40.65. view_table_usage
40.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.