受支持版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发版本: 19 / devel
此文档适用于不受支持的 PostgreSQL 版本。
您可能需要查看当前版本的相同页面,或上面列出的其他受支持版本。

Chapter 35. 信息模式

Table of Contents

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_column_usage
35.13. column_domain_usage
35.14. column_options
35.15. column_privileges
35.16. column_udt_usage
35.17. columns
35.18. constraint_column_usage
35.19. constraint_table_usage
35.20. data_type_privileges
35.21. domain_constraints
35.22. domain_udt_usage
35.23. domains
35.24. element_types
35.25. enabled_roles
35.26. foreign_data_wrapper_options
35.27. foreign_data_wrappers
35.28. foreign_server_options
35.29. foreign_servers
35.30. foreign_table_options
35.31. foreign_tables
35.32. key_column_usage
35.33. parameters
35.34. pg_edge_table_components
35.35. pg_element_table_key_columns
35.36. pg_element_table_labels
35.37. pg_element_table_properties
35.38. pg_element_tables
35.39. pg_label_properties
35.40. pg_labels
35.41. pg_property_data_types
35.42. pg_property_graph_privileges
35.43. property_graphs
35.44. referential_constraints
35.45. role_column_grants
35.46. role_routine_grants
35.47. role_table_grants
35.48. role_udt_grants
35.49. role_usage_grants
35.50. routine_column_usage
35.51. routine_privileges
35.52. routine_routine_usage
35.53. routine_sequence_usage
35.54. routine_table_usage
35.55. routines
35.56. schemata
35.57. sequences
35.58. sql_features
35.59. sql_implementation_info
35.60. sql_parts
35.61. sql_sizing
35.62. table_constraints
35.63. table_privileges
35.64. tables
35.65. transforms
35.66. triggered_update_columns
35.67. triggers
35.68. udt_privileges
35.69. usage_privileges
35.70. user_defined_types
35.71. user_mapping_options
35.72. user_mappings
35.73. view_column_usage
35.74. view_routine_usage
35.75. view_table_usage
35.76. views

信息模式由一组视图组成,其中包含当前数据库中定义的对象的信息。信息模式由 SQL 标准定义,因此可以预期它具有可移植性并保持稳定;而系统目录则不同,它们是 PostgreSQL 特有的,并且是围绕实现方面的考虑建模的。不过,信息模式视图不包含 PostgreSQL 特有功能的信息;要查询这些信息,需要查询系统目录或其他 PostgreSQL 特有视图。

Note

当在数据库中查询约束信息时,一个期望返回一行的标准兼容的查询可能返回多行。这是因为 SQL 标准要求约束名在一个模式中唯一,但是PostgreSQL并不强制这种限制。PostgreSQL自动产生的约束名避免在相同的模式中重复,但是用户能够指定这种重复的名称。

这个问题可能在查询信息模式视图时出现,例如check_constraint_routine_usagecheck_constraintsdomain_constraintsreferential_constraints。一些其他视图也有相似的问题,但是它们包含了表名来帮助区分重复行,例如constraint_column_usageconstraint_table_usagetable_constraints