Vorrei ottenere le colonne su cui si trova un indice in PostgreSQL.
In MySQL puoi usare SHOW INDEXES FOR table
e guardare la Column_name
colonna.
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 | |
+-------+------------+---------------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
Esiste qualcosa di simile per PostgreSQL?
Ho provato \d
al psql
prompt dei comandi (con l' -E
opzione per mostrare SQL) ma non mostra le informazioni che sto cercando.
Aggiornamento: grazie a tutti coloro che hanno aggiunto le loro risposte. cope360 mi ha dato esattamente quello che stavo cercando, ma diverse persone sono intervenute con collegamenti molto utili. Per riferimenti futuri, consulta la documentazione di pg_index (via Milen A. Radev ) e l'articolo molto utile Estrarre informazioni META da PostgreSQL (via Michał Niklas ).