Мне нужно получить следующую информацию об индексах для конкретной таблицы:
- имя индекса
- столбцы, которые проиндексированы
- уникален или нет?
Как я могу это сделать в PostgreSQL 8.4?
ПРИМЕЧАНИЕ : я должен иметь возможность вызывать это с помощью PHP. Просто говорю ...
РЕДАКТИРОВАТЬ : у меня сначала был этот запрос, но он работает только начиная с PostgreSQL 9.0:
SELECT t.relname AS table_name,
relname AS index_name,
a.attname AS column_name,
ix.indisunique
FROM pg_class t,
pg_class i,
pg_index ix,
pg_attribute a,
pg_constraint c
WHERE t.oid = ix.indrelid
AND i.oid = ix.indexrelid
AND a.attrelid = t.oid
AND i.oid = c.conindid
AND a.attnum = ANY(ix.indkey)
AND c.contype != 'p'
AND t.relkind = 'r'
AND t.relname = 'tablename'
ORDER BY t.relname, i.relname