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