我需要获取有关特定表上的索引的以下信息:
- 索引名称
- 被索引的列
- 独特与否?
我怎样才能在 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