[Pgsql-ayuda] Indices

Alvaro Herrera Munoz alvherre@dcc.uchile.cl
Thu, 14 Aug 2003 11:49:18 -0400


On Thu, Aug 14, 2003 at 02:56:29PM +0000, mondino@solsoft.com.ar wrote:
> Como se que indices tiene una tabla?
> Algun comando, si es posible via ODBC. Gracias.

Via psql, haces \d <tabla> y te deberia mostrar los indices
(al menos en la version que yo tengo).  Ejecuta psql -E y te va
a mostrar las consultas que hace para responderte el \d,
eso te puede servir de guia.

En cualquier caso algo como
regression=> select relname, indkey from pg_index join pg_class on (indexrelid=pg_class.oid) where indrelid='http'::regclass;

-[ RECORD 1 ]-------------
relname | idx_http
indkey  | 1 2 5
-[ RECORD 2 ]-------------
relname | http_obj_id_date
indkey  | 1 5

Aqui los indkey son los attnum de los atributos del indice, puedes verlo con
regression=> select attnum,attname from pg_attribute where attrelid='http'::regclass and attnum in (1, 2, 5);
 attnum |   attname
--------+-------------
      1 | obj_id
      2 | servidor_id
      5 | date
(3 rows)

-- 
Alvaro Herrera (<alvherre[@]dcc.uchile.cl>)
www.google.com: interfaz de linea de comando para la web.