Je voudrais obtenir les colonnes sur lesquelles se trouve un index dans PostgreSQL.
Dans MySQL, vous pouvez utiliser SHOW INDEXES FOR table
et consulter la Column_name
colonne.
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-t-il quelque chose comme ça pour PostgreSQL?
J'ai essayé \d
à l' psql
invite de commande (avec l' -E
option d'afficher SQL) mais il n'affiche pas les informations que je recherche.
Mise à jour: Merci à tous ceux qui ont ajouté leurs réponses. cope360 m'a donné exactement ce que je cherchais, mais plusieurs personnes sont intervenues avec des liens très utiles. Pour référence future, consultez la documentation de pg_index (via Milen A. Radev ) et l'article très utile Extraire les informations META de PostgreSQL (via Michał Niklas ).