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

Содержание

35.1. Схема
35.2. Типы данных
35.3. information_schema_catalog_name
35.4. administrable_role_authorizations
35.5. applicable_roles
35.6. attributes
35.7. character_sets
35.8. check_constraint_routine_usage
35.9. check_constraints
35.10. collations
35.11. collation_character_set_applicability
35.12. column_domain_usage
35.13. column_options
35.14. column_privileges
35.15. column_udt_usage
35.16. columns
35.17. constraint_column_usage
35.18. constraint_table_usage
35.19. data_type_privileges
35.20. domain_constraints
35.21. domain_udt_usage
35.22. domains
35.23. element_types
35.24. enabled_roles
35.25. foreign_data_wrapper_options
35.26. foreign_data_wrappers
35.27. foreign_server_options
35.28. foreign_servers
35.29. foreign_table_options
35.30. foreign_tables
35.31. key_column_usage
35.32. parameters
35.33. referential_constraints
35.34. role_column_grants
35.35. role_routine_grants
35.36. role_table_grants
35.37. role_udt_grants
35.38. role_usage_grants
35.39. routine_privileges
35.40. routines
35.41. schemata
35.42. sequences
35.43. sql_features
35.44. sql_implementation_info
35.45. sql_languages
35.46. sql_packages
35.47. sql_parts
35.48. sql_sizing
35.49. sql_sizing_profiles
35.50. table_constraints
35.51. table_privileges
35.52. tables
35.53. transforms
35.54. triggered_update_columns
35.55. triggers
35.56. udt_privileges
35.57. usage_privileges
35.58. user_defined_types
35.59. user_mapping_options
35.60. user_mappings
35.61. view_column_usage
35.62. view_routine_usage
35.63. view_table_usage
35.64. views

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

Примечание

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

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