如何列出在postgres中为表创建的索引

时间:2016-05-19 16:53:10

标签: postgresql

你能告诉我如何检查postgresql中为某些表创建的索引吗?

5 个答案:

答案 0 :(得分:40)

视图pg_indexes提供对数据库中每个索引的有用信息的访问,例如

select *
from pg_indexes
where tablename not like 'pg%';

答案 1 :(得分:26)

如果你在psql中,那么:

\d tablename

显示索引,外键和引用...

答案 2 :(得分:1)

您可以使用以下查询:

select tablename,indexname,tablespace,indexdef from pg_indexes where tablename = 'your_table_name';

其中表名 pg_indexes 中的字段,您可以通过匹配用户定义的表' your_table_name 来获得准确的索引”位于 WHERE 子句中。这将为您提供所需的详细信息。

答案 3 :(得分:0)

where tablename是pg_indexes中的一个字段,通过匹配where子句中'your_table_name'处的用户定义表,您可以获得准确的索引。

从pg_indexes中选择表名,索引名,表空间,indexdef,其中表名='your_table_name';

答案 4 :(得分:0)

您可以在pg_indexes视图中找到所有与索引相关的信息。有时表是某个架构/所有者的一部分,或者可能在 PostgreSQL Rename Table 中会更改表名。所以首先找出谁是表的所有者,然后在表上查询索引。

select schemaname, tablename from pg_tables where tablename='TEST';

select tablename,indexname from pg_indexes where tablename='TEST';

or 

select * from pg_indexes where tablename='SCHEMA_NME.TABLE_NAME';

**You can also use \d:**

\d table_name;