Gostaria de obter as colunas em que um índice está no PostgreSQL.
No MySQL você pode usar SHOW INDEXES FOR table
e olhar para a Column_name
coluna.
mysql> show indexes from foos;
+-------+------------+---------------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment |
+-------+------------+---------------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
| foos | 0 | PRIMARY | 1 | id | A | 19710 | NULL | NULL | | BTREE | |
| foos | 0 | index_foos_on_email | 1 | email | A | 19710 | NULL | NULL | YES | BTREE | |
| foos | 1 | index_foos_on_name | 1 | name | A | 19710 | NULL | NULL | | BTREE | |
+-------+------------+---------------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
Existe algo assim para o PostgreSQL?
Eu tentei \d
no psql
prompt de comando (com a -E
opção de mostrar SQL), mas ele não mostra as informações que estou procurando.
Atualização: obrigado a todos que adicionaram suas respostas. cope360 me deu exatamente o que eu estava procurando, mas várias pessoas entraram em contato com links muito úteis. Para referência futura, consulte a documentação do pg_index (via Milen A. Radev ) e o artigo muito útil Extraindo informações META do PostgreSQL (via Michał Niklas ).