目录
information_schema_catalog_name
administrable_role_authorizations
applicable_roles
attributes
character_sets
check_constraint_routine_usage
check_constraints
collations
collation_character_set_applicability
column_column_usage
column_domain_usage
column_options
column_privileges
column_udt_usage
columns
constraint_column_usage
constraint_table_usage
data_type_privileges
domain_constraints
domain_udt_usage
domains
element_types
enabled_roles
foreign_data_wrapper_options
foreign_data_wrappers
foreign_server_options
foreign_servers
foreign_table_options
foreign_tables
key_column_usage
parameters
referential_constraints
role_column_grants
role_routine_grants
role_table_grants
role_udt_grants
role_usage_grants
routine_column_usage
routine_privileges
routine_routine_usage
routine_sequence_usage
routine_table_usage
routines
schemata
sequences
sql_features
sql_implementation_info
sql_parts
sql_sizing
table_constraints
table_privileges
tables
transforms
triggered_update_columns
triggers
udt_privileges
usage_privileges
user_defined_types
user_mapping_options
user_mappings
view_column_usage
view_routine_usage
view_table_usage
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
。