我想知道如何在Postgres中查询实例化视图的定义。作为参考,我希望执行的操作与常规视图的操作非常相似:
SELECT * FROM information_schema.views WHERE table_name = 'some_view';
它为您提供以下列:
table_catalog
table_schema
table_name
view_definition
check_option
is_updatable
is_insertable_into
is_trigger_updatable
is_trigger_deletable
is_trigger_insertable_into
物化视图可能吗?
到目前为止,从我的研究看来,物化视图似乎是故意从information_schema中排除的,因为
information_schema仅可以显示SQL标准中存在的对象。
(http://www.postgresql.org/message-id/3794.1412980686@sss.pgh.pa.us)
由于它们似乎被完全排除在information_schema之外,因此我不确定该怎么做,但是我想做的事情有两个:
- 查询是否存在特定的实例化视图。(到目前为止,我发现这样做的唯一方法是尝试创建一个具有相同名称的垫视图,看看它是否爆炸了。)
- 然后查询实例化视图的定义(类似于上的
view_definition
列information_schema.views
)。
SELECT to_regclass('some_schema.some_mat_view')
-如果找到了,它不一定是MV。详细信息:stackoverflow.com/questions/20582500/…–