List columns with indexes in PostgreSQL

后端 未结 23 1962
我在风中等你
我在风中等你 2020-11-27 09:14

I would like to get the columns that an index is on in PostgreSQL.

In MySQL you can use SHOW INDEXES FOR table and look at the Column_name

23条回答
  •  Happy的楠姐
    2020-11-27 09:42

    How about a simple solution:

    SELECT 
      t.relname table_name,
      ix.relname index_name,
      indisunique,
      indisprimary, 
      regexp_replace(pg_get_indexdef(indexrelid), '.*\((.*)\)', '\1') columns
    FROM pg_index i
    JOIN pg_class t ON t.oid = i.indrelid
    JOIN pg_class ix ON ix.oid = i.indexrelid
    WHERE t.relname LIKE 'test%'
    

    `

提交回复
热议问题