Table of Contents
information_schema_catalog_nameadministrable_role_authorizationsapplicable_rolesattributescharacter_setscheck_constraint_routine_usagecheck_constraintscollationscollation_character_set_applicabilitycolumn_column_usagecolumn_domain_usagecolumn_optionscolumn_privilegescolumn_udt_usagecolumnsconstraint_column_usageconstraint_table_usagedata_type_privilegesdomain_constraintsdomain_udt_usagedomainselement_typesenabled_rolesforeign_data_wrapper_optionsforeign_data_wrappersforeign_server_optionsforeign_serversforeign_table_optionsforeign_tableskey_column_usageparametersreferential_constraintsrole_column_grantsrole_routine_grantsrole_table_grantsrole_udt_grantsrole_usage_grantsroutine_column_usageroutine_privilegesroutine_routine_usageroutine_sequence_usageroutine_table_usageroutinesschematasequencessql_featuressql_implementation_infosql_partssql_sizingtable_constraintstable_privilegestablestransformstriggered_update_columnstriggersudt_privilegesusage_privilegesuser_defined_typesuser_mapping_optionsuser_mappingsview_column_usageview_routine_usageview_table_usageviews信息模式由一组视图组成,其中包含当前数据库中定义的对象的信息。信息模式由 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。
如果您发现文档中有不正确的内容、与您使用特定功能的经验不符或需要进一步说明,请使用此表单来报告文档问题。