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

How to list indexes created for table in postgres

你能告诉我如何检查在 postgresql 中为某些 table 创建了哪些索引吗?

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

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

如果你在 psql 中,那么:

\d tablename

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

您可以使用这个查询:

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

其中 tablenamepg_indexes 中的一个字段,您可以通过以下方式获得准确的索引匹配用户定义的 table at 'your_table_name' at WHERE clause 。这将为您提供所需的详细信息。

您可以在pg_indexes视图中找到所有索引相关信息。有时 table 是某些模式/所有者的一部分,或者可能在 PostgreSQL Rename Table 中会更改 table 名称。所以首先找出谁是 table 的所有者,然后在 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;