PostgreSQL中是否有方法查找所有使用外部数据包装的视图?

PostgreSQL中是否有方法查找所有使用外部数据包装的视图?,postgresql,postgresql-9.1,postgresql-9.3,postgresql-9.4,postgresql-9.5,Postgresql,Postgresql 9.1,Postgresql 9.3,Postgresql 9.4,Postgresql 9.5,我正在从事一个根本没有文档记录的Postgres数据库项目,其中一个主要问题是如何解释对外来数据包装器的依赖性。我能够在postgres SQL中查询所有外来数据包装器,但我不知道如何将它们与使用它们的视图关联。 我使用pg_dump做了一个模式转储,并尝试进行控制查找包装器的使用位置,但是包装器太多了。是否有一个工具可以使用模式转储并理解它,或者是否有其他方法可以获取此依赖关系信息?我认为这应该可以做到: SELECT DISTINCT pg_rewrite.ev_class::regcl

我正在从事一个根本没有文档记录的Postgres数据库项目,其中一个主要问题是如何解释对外来数据包装器的依赖性。我能够在postgres SQL中查询所有外来数据包装器,但我不知道如何将它们与使用它们的视图关联。
我使用pg_dump做了一个模式转储,并尝试进行控制查找包装器的使用位置,但是包装器太多了。是否有一个工具可以使用模式转储并理解它,或者是否有其他方法可以获取此依赖关系信息?

我认为这应该可以做到:

SELECT DISTINCT
  pg_rewrite.ev_class::regclass AS view,
  pg_class.oid::regclass AS fdw
FROM pg_depend
JOIN pg_rewrite ON pg_rewrite.oid = objid
JOIN pg_class ON pg_class.oid = refobjid
WHERE pg_class.relkind = 'f'

我认为这应该做到:

SELECT DISTINCT
  pg_rewrite.ev_class::regclass AS view,
  pg_class.oid::regclass AS fdw
FROM pg_depend
JOIN pg_rewrite ON pg_rewrite.oid = objid
JOIN pg_class ON pg_class.oid = refobjid
WHERE pg_class.relkind = 'f'

谢谢尼克,这帮了大忙!有没有一种方法可以使用DML查找使用其他视图的视图?@codeBarer:应该是相同的查询,但是使用
relkind='v'
而不是
relkind='f'
这非常有帮助!有没有一种方法可以使用DML查找同时使用其他视图的视图?@codeBarer:应该是相同的查询,但是使用
relkind='v'
而不是
relkind='f'