如何列出为 postgres 中的表创建的索引
Posted
技术标签:
【中文标题】如何列出为 postgres 中的表创建的索引【英文标题】:How to list indexes created for table in postgres 【发布时间】:2016-09-16 16:59:29 【问题描述】:您能告诉我如何检查在 postgresql 中为某个表创建了哪些索引吗?
【问题讨论】:
【参考方案1】:您可以在 pg_indexes 视图中找到所有与索引相关的信息。有时表是某些架构/所有者的一部分,或者可能在PostgreSQL Rename Table 中会更改表名。所以先找出谁是表的所有者,然后查询表上的索引。
select schemaname, tablename from pg_tables where tablename='TEST'; select tablename,indexname from pg_indexes where tablename='TEST'; 要么 select * from pg_indexes where tablename='SCHEMA_NME.TABLE_NAME'; **您也可以使用 \d:** \d 表名;【讨论】:
【参考方案2】:你可以使用这个查询:
select tablename,indexname,tablespace,indexdef from pg_indexes where tablename = 'your_table_name'
;
tablename 是 pg_indexes 中的一个字段,您可以通过匹配 'your_table_name 处的用户定义表来获得准确的索引' 在 WHERE 子句中。这将为您提供所需的详细信息。
【讨论】:
【参考方案3】:如果你在 psql 中,那么:
\d tablename
显示索引、外键和引用...
【讨论】:
【参考方案4】:视图pg_indexes 提供对数据库中每个索引的有用信息的访问,例如。
select *
from pg_indexes
where tablename not like 'pg%';
【讨论】:
以上是关于如何列出为 postgres 中的表创建的索引的主要内容,如果未能解决你的问题,请参考以下文章
如何在 PostgreSQL 中列出具有相应大小的表的所有索引?
REDSHIFT:如何生成一系列数字而不在 redshift (Postgres 8.0.2) 中创建名为“数字”的表?