pg_index 包含关于索引的一部分信息。其它的信息大多数在 pg_class
表43-18. pg_index 字段
名字 | 类型 | 引用 | 描述 |
---|---|---|---|
indexrelid | oid | pg_class.oid | 这个索引在 pg_class 里的记录的 OID |
indrelid | oid | pg_class.oid | 使用这个索引的表在 pg_class 里的记录的 OID |
indnatts | int2 | 索引中的字段数目(复制的 pg_class.relnatts) | |
indisunique | bool | 如果为真,这是个唯一索引 | |
indisprimary | bool | 如果为真,该索引代表该表的主键。这个字段为真的时候 indisunique 应该总是为真。 | |
indisclustered | bool | 如果为真,那么该表最后在这个索引上建了簇。 | |
indisvalid | bool | 如果为真,那么该索引可以用于查询。如果为假,那么该索引可能不完整,仍然必须在 INSERT/UPDATE 操作时进行更新,不过不能安全的用于查询。如果是唯一索引,那么唯一属性也将不为真。 | |
indkey | int2vector | pg_attribute.attnum | 这是一个包含 indnatts 值的数组,这些数组值表示这个索引所建立的表字段。比如一个值为 1 3 的意思是第一个字段和第三个字段组成这个索引键字。这个数组里的零表明对应的索引属性是在这个表字段上的一个表达式,而不是一个简单的字段引用。 |
indclass | oidvector | pg_opclass.oid | 对于索引键字里面的每个字段,这个字段都包含一个指向所使用的操作符类的 OID ,参阅 pg_opclass 获取细节。 |
indexprs | text | 表达式树(以 nodeToString() 形式表现)用于那些非简单字段引用的索引属性。它是一个列表,在 indkey 里面的每个零条目一个元素。如果所有索引属性都是简单的引用,则为空。 | |
indpred | text | 部分索引断言的表达式树(以 nodeToString() 的形式表现)。如果不是部分索引,则是空字符串。 |