PostgreSQL,获取所有分区表名和所有NOT分区表名

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

如何获取数据库中所有非分区表的名称?我使用PostgresSQL 9.6

我如何只获取分区表的名称?

现在我在我的数据库中有分区的名称,指定一个表名,但我需要动态地这样做。

SELECT i.inhrelid::regclass AS child
FROM   pg_inherits i
WHERE  i.inhparent = 'public.documento'::regclass;
sql postgresql postgresql-9.6
1个回答
0
投票

更新

对于分区表:

select distinct inhparent::regclass from pg_inherits

而不是smthlike分区:

select oid::regclass::text relation
from pg_class where relkind = 'r'
except
select distinct inhparent::regclass::text
from pg_inherits
except
select distinct inhrelid::regclass::text
from pg_inherits
;

注意:要过滤结果,只需使用where,就像

with l as (
<code above>
)
select * from l where relation not like 'pg_%';
© www.soinside.com 2019 - 2024. All rights reserved.