2024年9月26日:PostgreSQL 17 发布!
支持的版本:当前 (17) / 16 / 15 / 14 / 13 / 12
开发版本:devel
不支持的版本:11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1

51.26. pg_index #

目录pg_index包含索引信息的一部分。其余大部分信息位于pg_class中。

表 51.26. pg_index

列类型

描述

indexrelid oid(引用pg_class.oid

此索引的pg_class条目的OID

indrelid oid(引用pg_class.oid

此索引所属表的pg_class条目的OID

indnatts int2

索引中列的总数(与pg_class.relnatts重复);此数字包括键属性和包含属性

indnkeyatts int2

索引中键列的数量,不包括任何包含列,包含列仅被存储,不参与索引语义

indisunique bool

如果为真,则为唯一索引

indnullsnotdistinct bool

此值仅用于唯一索引。如果为假,则此唯一索引将视为空值是不同的(因此索引可以在一列中包含多个空值,这是PostgreSQL的默认行为)。如果为真,则将视为空值是相等的(因此索引在一列中只能包含一个空值)。

indisprimary bool

如果为真,则此索引表示表的唯一键(当此值为真时,indisunique应始终为真)

indisexclusion bool

如果为真,则此索引支持排他约束

indimmediate bool

如果为真,则唯一性检查在插入时立即执行(如果indisunique不为真则无关紧要)

indisclustered bool

如果为真,则该表上次在该索引上进行了聚簇

indisvalid bool

如果为真,则索引当前对查询有效。为假表示索引可能不完整:它仍必须由INSERT/UPDATE操作修改,但不能安全地用于查询。如果它是唯一的,则唯一性属性也不保证为真。

indcheckxmin bool

如果为真,则查询不得使用索引,直到此pg_index行的xmin低于它们的TransactionXmin事件范围,因为表可能包含它们可以看到的不兼容行的损坏HOT 链

indisready bool

如果为真,则索引当前已准备好进行插入。为假表示索引必须被INSERT/UPDATE操作忽略。

indislive bool

如果为假,则索引正在被删除,应出于所有目的(包括HOT安全性决策)忽略它

indisreplident bool

如果为真,则此索引已使用ALTER TABLE ... REPLICA IDENTITY USING INDEX ...选择为副本标识

indkey int2vector(引用pg_attribute.attnum

这是一个包含indnatts值的数组,指示此索引索引哪些表列。例如,值1 3表示第一列和第三列构成索引条目。键列位于非键(包含)列之前。此数组中的零表示相应的索引属性是表列上的表达式,而不是简单的列引用。

indcollation oidvector(引用pg_collation.oid

对于索引键中的每一列(indnkeyatts值),这包含要使用的排序规则的OID,或者如果列不是可排序的数据类型,则为零。

indclass oidvector(引用pg_opclass.oid

对于索引键中的每一列(indnkeyatts值),这包含要使用的运算符类的OID。有关详细信息,请参阅pg_opclass

indoption int2vector

这是一个包含indnkeyatts值的数组,用于存储每列标志位。位的含义由索引的访问方法定义。

indexprs pg_node_tree

不是简单列引用的索引属性的表达式树(以nodeToString()表示形式)。这是一个列表,每个indkey中的零条目对应一个元素。如果所有索引属性都是简单引用,则为null。

indpred pg_node_tree

部分索引谓词的表达式树(以nodeToString()表示形式)。如果不是部分索引,则为null。


提交更正

如果您在文档中看到任何不正确的内容,与您对特定功能的体验不符,或者需要进一步说明,请使用此表单报告文档问题。