我想知道视图中使用的所有表和列,以便我可以创建一个带有一些自定义的新视图。此自定义涉及替换表名称和列。
我知道我可以使用
获取视图定义SELECT definition FROM pg_views WHERE viewname=view_name;
但这只给了我一个可以用来替换值的字符串。
以下代码仅列出了视图列名而不是原始列。它无法列出表格。
SELECT *
FROM information_schema.columns
WHERE table_schema = 'public'
AND table_name = 'my_view'
有没有办法在视图中获取表和列的列表?
答案 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