我已经定义了一些基于Redshift中其他视图/表的视图,并且希望从系统表中获取有关列级依赖项的信息。
例如,我有以下定义:
CREATE TABLE t1 AS (SELECT 2 as a, 4 as b, 99 as c );
CREATE VIEW v1 AS (SELECT a, b FROM t1);
CREATE VIEW v2 AS (SELECT a*b/2 as x FROM v1);
我想做的是在系统或目录表上创建某种查询,该查询将返回以下内容:
target_column | target_table_or_view | source_column | source_table_or_view |
------------------------------------------------------------------------------
x | v2 | a | v1
x | v2 | b | v1
a | v1 | a | t1
b | v1 | b | t1
我已经尝试过此处给出的解决方案:How to create a dependency list for an object in Redshift?。但是,此查询不会产生我要查找的“目标列”列,并且我不知道如何调整它。
这可能吗?理想情况下,我想在Redshift中进行此操作,但是如果需要,我可以使用更新版本的Postgres。
答案 0 :(得分:1)
PostgreSQL中没有与“目标列”相关的依赖项,因此您无法在元数据中找到它。
这是完整视图(准确地说是其查询重写规则),它依赖于源表和列。