gru*_*czy 5 postgresql indexing information-schema
有很多信息可以从information_schema和pg_catalog中检索到postgresql.我想检索有关由某个索引索引的列的信息,类似于我pragma index_info(<index_name>)在sqlite3中实现的.如何在不解析create index语句的情况下实现这一目标?
那些东西很容易找到.
只需使用该-E选项运行psql,它将显示所使用的SQL语句.因此,当运行\ d index_name时,以下语句(以及其他语句)用于检索索引列:
SELECT a.attname,
pg_catalog.format_type (a.atttypid,a.atttypmod),
(SELECT SUBSTRING (pg_catalog.pg_get_expr (d.adbin,d.adrelid) FOR 128)
FROM pg_catalog.pg_attrdef d
WHERE d.adrelid = a.attrelid
AND d.adnum = a.attnum
AND a.atthasdef)a.attnotnull,
a.attnum,
pg_catalog.pg_get_indexdef (a.attrelid,a.attnum,TRUE) AS indexdef
FROM pg_catalog.pg_attribute a
WHERE a.attrelid = (SELECT oid FROM pg_class WHERE relname = 'index_name')
AND a.attnum > 0
AND NOT a.attisdropped
ORDER BY a.attnum;
| 归档时间: |
|
| 查看次数: |
3257 次 |
| 最近记录: |