暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

【GaussDB】GaussDB怎么查询分区表的索引信息?

一叶扁舟 2023-03-27
2429

1.pg_partition里有

2.或者用pg_get_tabledef查表定义,包含索引创建语句

3.或者查询PG_INDEXES视图

分区表上的索引分为:本地(局部)索引(local index) 和 全局索引(global index)

SELECT
n.nspname AS schemaname, --schema名称
c1.relname AS tablename, – 表名
c2.relname AS indexname, – 索引名称
s.conname AS conname, – 约束名称
pg_get_constraintdef(s.oid) AS constraintdef, – 如果是约束,输出约束定义
CASE WHEN s.conname IS NULL THEN pg_get_indexdef(x.indexrelid) END AS indexdef – 如果不是约束,输出索引定义
FROM pg_index x
INNER JOIN pg_class c1 ON c1.oid = x.indrelid
INNER JOIN pg_class c2 ON c2.oid = x.indexrelid
INNER JOIN pg_namespace n ON n.oid = c1.relnamespace
LEFT JOIN pg_constraint s ON s.conrelid = x.indrelid AND s.conindid = x.indexrelid
WHERE (x.indisprimary = true OR x.indisunique = true)
AND c1.relkind = ‘r’
AND x.indrelid >= 16384 AND x.indexrelid > 16384
AND (c1.reloptions IS NULL OR c1.reloptions::text not like ‘%internal_mask%’) – 排除内置对象
ORDER BY schemaname, tablename, indexname

尝试使用此sql

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论