我正在将视图使用映射到一个未知的数据库方案。我收到了一份包含一些观点的清单:
view_a
view_b
view_c
我想搜索我的数据库哪些视图依赖于另一个视图,例如,如果 view_c 是通过以下 sql 查询生成的:
CREATE VIEW view_c AS SELECT * from view_a JOIN view_b WHERE view_a.column=344
我想以某种方式列出该view_c
用途view_a
和view_b
Excel 表。现在是通过查看 Dbeaver 上的视图 dll sql 并从中找出来手动完成的。但这是一项非常费力的工作,并且可能会错过一些视图依赖项,所以你知道如果我可以通过 information_schema.* 的查询生成 Excel 表tables
吗?
您可以通过以下查询获取哪个视图使用另一个视图:
如果您想搜索特定的视图列表:
如果您需要哪个物化视图使用另一个物化视图,则可以使用此查询:
整个想法是使用
pg_views
普通视图或pg_matviews
将它们连接在一起并在其 sql 代码中搜索哪个视图使用了另一个视图。例如,为了查看哪个视图使用了另一个物化视图:
它在 postgresql 11 上进行了测试。
您可以
view_table_usage
为此使用:下面将显示 view_c 使用的所有对象。
如果您使用
view_a
作为输入运行该查询,您将获得使用的表(和其他对象)view_a
。