使用 pgAdmin 4 对 PostgreSQL 数据库的所有表执行 select 查询

Do a select query on all tables of PostgreSQL database using pgAdmin 4

我有一个包含大约 90 个模式的数据库。在这些模式中的每一个中,我转到“物化视图”并转到一个名为“product_visitor_view”的视图,然后创建一个 SELECT 脚本,然后编写此脚本和 运行 并查看结果:

SELECT priority, count(*)
FROM ag_modem_01.product_visitor_view
group by priority;

但是,我无法对所有 90 个架构都执行此操作。有没有一种方法可以对所有模式执行此操作,并且结果会针对页面中的每个模式显示,我该如何执行此操作?

提前致谢。

您可以使用以下查询为每个模式准备 SQL。 这个想法是,而不是手动编写所有查询,您可以使用系统 table pg_matviews,其中包含有关物化视图的信息。 一旦你有了列表,只需要在所有行之间做联合。

select 
string_agg('select '''||schemaname||''' as schema,priority,count(*) from '||schemaname||'.'||matviewname
           ||' group by priority '||chr(10),' Union All '||chr(10)
           )
from pg_matviews
where matviewname='product_visitor_view'
and ispopulated=true; -- to filter out Views which has not been populated

获取此查询的输出并运行它在查询工具中。