在PostgreSQL中提取View表和列

时间:2016-08-19 10:31:22

标签: sql postgresql

我想知道视图中使用的所有表和列,以便我可以创建一个带有一些自定义的新视图。此自定义涉及替换表名称和列。

我知道我可以使用

获取视图定义
SELECT definition FROM pg_views WHERE viewname=view_name;

但这只给了我一个可以用来替换值的字符串。

以下代码仅列出了视图列名而不是原始列。它无法列出表格。

SELECT *
FROM information_schema.columns
WHERE table_schema = 'public'
AND table_name   = 'my_view'

有没有办法在视图中获取表和列的列表?

1 个答案:

答案 0 :(得分:0)

视图中的所有表:

select t.tablename from pg_tables t
where (SELECT 1 FROM pg_views v where position((' ' || t.tablename || ' ') in v.definition) > 0 limit 1) = 1