PostgreSQL 信息模式
目录
- 36.1. 模式
- 36.2. 数据类型
- 36.3.
information_schema_catalog_name
- 36.4.
administrable_role_authorizations
- 36.5.
applicable_roles
- 36.6.
attributes
- 36.7.
character_sets
- 36.8.
check_constraint_routine_usage
- 36.9.
check_constraints
- 36.10.
collations
- 36.11.
collation_character_set_applicability
- 36.12.
column_column_usage
- 36.13.
column_domain_usage
- 36.14.
column_options
- 36.15.
column_privileges
- 36.16.
column_udt_usage
- 36.17.
columns
- 36.18.
constraint_column_usage
- 36.19.
constraint_table_usage
- 36.20.
data_type_privileges
- 36.21.
domain_constraints
- 36.22.
domain_udt_usage
- 36.23.
domains
- 36.24.
element_types
- 36.25.
enabled_roles
- 36.26.
foreign_data_wrapper_options
- 36.27.
foreign_data_wrappers
- 36.28.
foreign_server_options
- 36.29.
foreign_servers
- 36.30.
foreign_table_options
- 36.31.
foreign_tables
- 36.32.
key_column_usage
- 36.33.
parameters
- 36.34.
referential_constraints
- 36.35.
role_column_grants
- 36.36.
role_routine_grants
- 36.37.
role_table_grants
- 36.38.
role_udt_grants
- 36.39.
role_usage_grants
- 36.40.
routine_privileges
- 36.41.
routines
- 36.42.
schemata
- 36.43.
sequences
- 36.44.
sql_features
- 36.45.
sql_implementation_info
- 36.46.
sql_parts
- 36.47.
sql_sizing
- 36.48.
table_constraints
- 36.49.
table_privileges
- 36.50.
tables
- 36.51.
transforms
- 36.52.
triggered_update_columns
- 36.53.
triggers
- 36.54.
udt_privileges
- 36.55.
usage_privileges
- 36.56.
user_defined_types
- 36.57.
user_mapping_options
- 36.58.
user_mappings
- 36.59.
view_column_usage
- 36.60.
view_routine_usage
- 36.61.
view_table_usage
- 36.62.
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
。