如何在postgres中找到LOCALITY,PARTITIONED,UNIQUENESS的详细信息,与我们从oracle的USER_PART_INDEXES中获得的相同

问题描述 投票:0回答:2

有人可以帮助我获取postgres中的LOCALITYPARTITIONEDUNIQUENESS列,就像我们从oracle的USER_PART_INDEXES中获得的那样,它显示了分区索引的对象级分区信息吗?

我尝试在postgres中使用pg_indexes,但找不到LOCALITYPARTITIONEDUNIQUENESS细节。

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
postgresql database-migration ef-migrations postgresql-9.5
2个回答
0
投票

PostgreSQL不是Oracle,如果你不试图将他们的系统目录视为同样的话,你的生活会更容易。

这两个系统表是您想要的,但不要只假设两个系统中的行为相同:


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;
© www.soinside.com 2019 - 2024. All rights reserved.