暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

视图与表的依赖关系

原创 GaussDB数据库 2022-07-18
790

本文转自华为云社区,作者:Sprother;原文链接:https://bbs.huaweicloud.com/blogs/364220

背景

出于数据安全或者使数据简单化的考虑,在数据仓库的建设过程中,通常采用视图的方式实现;时间久了之后,有时候视图与表的关系会变的很复杂,那么,我们如何找出他们的依赖关系呢?

1、基础信息

1.1 表信息

1.2 直接依赖表的视图

1.3 依赖视图的视图

2、查询直接的依赖关系

3、已知视图,递归查询依赖的表

WITH RECURSIVE get_view_dependency
AS
(
SELECT a.objname, a.refobjname, a.relobjkind, a.refobjname path
FROM pg_catalog.gs_view_dependency a
where a.objname = ‘view2_test_220704’ --(把这个条件改为两个条件schema+对象名)
UNION ALL
SELECT b.objname, b.refobjname, b.relobjkind, cte.path ||’ , '|| b.refobjname path
FROM pg_catalog.gs_view_dependency b
INNER JOIN get_view_dependency cte
ON cte.refobjname=b.objname
)
SELECT * FROM get_view_dependency;

4、已知表,查询引用的视图

–通过表查询引用的视图

WITH RECURSIVE get_view_dependency
AS
(
SELECT a.refobjname, a.objname, a.relobjkind, a.objname path
FROM pg_catalog.gs_view_dependency a
where a.refobjname = ‘test_220704’ --(把这个条件改为两个条件schema+对象名)
UNION ALL
SELECT b.refobjname, b.objname, b.relobjkind, cte.path ||’ , '|| b.objname path
FROM pg_catalog.gs_view_dependency b
INNER JOIN get_view_dependency cte
ON cte.objname=b.refobjname
)
SELECT * FROM get_view_dependency

查询结果如下图:

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论