我有一个基于表格的物化视图,其中列类型已更改。我想更改物化视图中的列。
我知道视图是基于它的定义但我找不到如何更新定义中的选择。
是唯一的方法来删除视图并使用新定义重新创建它吗?
答案 0 :(得分:1)
这不是您希望获得的,但目前唯一的方式更改实体化视图所基于的查询是删除并重新创建它。在Postgres 10中仍然如此。
ALTER MATERIALIZED VIEW
只能更改辅助属性。您还可以更改列名称,但不能更改数据类型。
如果需要并发访问且MV需要很长时间才能重新创建,您可以使用不同的名称创建 new MV,填充它并使用它而不是旧的来保持停机时间至少 - 如果这是一个选项。
相关: