有人可以帮我在postgres中获取LOCALITY
,PARTITIONED
,UNIQUENESS
列,就像我们从oracle的USER_PART_INDEXES
获取列一样,该列显示了对象的分区信息分区索引?
我尝试在Postgres中使用pg_indexes
,但找不到LOCALITY
,PARTITIONED
,UNIQUENESS
详细信息。
oracle :
SELECT I.INDEX_NAME INDEX_NAME
FROM USER_PART_INDEXES PI,USER_INDEXES I
WHERE I.TABLE_NAME = test
AND LOCALITY = 'LOCAL'
AND PARTITIONED = 'YES'
AND UNIQUENESS = 'NONUNIQUE'
AND INDEX_TYPE <> P_EXCLUDE_TYPE
AND I.TABLE_NAME = PI.TABLE_NAME
AND I.INDEX_NAME = PI.INDEX_NAME
答案 0 :(得分:0)
PostgreSQL不是Oracle,如果您不尝试将它们的系统目录视为相同,那么您的生活将会更加轻松。
这两个系统表是您所需要的,而不仅仅是假设两个系统中的行为相同:
答案 1 :(得分:0)
Postgres还没有全局索引,因此分区表上的所有索引都是“本地”索引。
索引的唯一性存储在pg_index.indisunique
要在Postgres中查找特定表的所有非唯一索引,您可以执行以下操作:
select ic.relname as index_name
from pg_index ix
join pg_class ic on ix.indexrelid = ic.oid
where ix.indrelid = 'test'::regclass
and not ix.indisunique;