查看表的所有索引和相应列

时间:2013-05-10 09:42:18

标签: postgresql indexing

如何查看表的所有现有索引?例如给定表mytable,如何使用适当的列查看他的每个索引?

2 个答案:

答案 0 :(得分:2)

试试这个SQL

SELECT * FROM pg_indexes WHERE tablename = 'mytable';

答案 1 :(得分:1)

psql中使用\d命令:

postgres=> create table foo (id integer not null primary key, some_data varchar(20));
CREATE TABLE
postgres=> create index foo_data_idx on foo (some_data);
CREATE INDEX
postgres=> \d+ foo
                                  Table "public.foo"
  Column   |         Type          | Modifiers | Storage  | Stats target | Description
-----------+-----------------------+-----------+----------+--------------+------------
 id        | integer               | not null  | plain    |              |
 some_data | character varying(20) |           | extended |              |
Indexes:
    "foo_pkey" PRIMARY KEY, btree (id)
    "foo_data_idx" btree (some_data)
Has OIDs: no


postgres=>

其他SQL工具还有其他显示此信息的方法。