Sql 如何获取使用视图的所有表和视图的列表?

Sql 如何获取使用视图的所有表和视图的列表?,sql,postgresql,Sql,Postgresql,我在Postgresql中有一个视图需要更改。 在我更改它之前,我需要知道谁使用它 我很容易发现哪些函数使用了它。。但我很难找出哪些视图/表使用它 我写了这段代码: SELECT classid::regclass,* FROM pg_depend WHERE refobjid = 'customerview'::regclass 这给了我很多ID,但没有表\视图名称 我怎样才能得到这些名字?这对你有用吗 SELECT DISTINCT dependee.relname FROM pg

我在Postgresql中有一个视图需要更改。 在我更改它之前,我需要知道谁使用它

我很容易发现哪些函数使用了它。。但我很难找出哪些视图/表使用它

我写了这段代码:

SELECT classid::regclass,*
FROM pg_depend
WHERE refobjid = 'customerview'::regclass
这给了我很多ID,但没有表\视图名称


我怎样才能得到这些名字?

这对你有用吗

SELECT  DISTINCT dependee.relname
FROM    pg_depend 
        JOIN pg_rewrite             ON pg_depend.objid = pg_rewrite.oid 
        JOIN pg_class AS dependee   ON pg_rewrite.ev_class = dependee.oid 
        JOIN pg_class AS dependent  ON pg_depend.refobjid = dependent.oid 
        JOIN pg_attribute           ON pg_depend.refobjid = pg_attribute.attrelid 
                                    AND pg_depend.refobjsubid = pg_attribute.attnum 
WHERE   dependent.relname = 'Your_TableOrViewName_Here'
        AND pg_attribute.attnum > 0;

不必担心是在线的;我在看什么?