【发布时间】:2017-12-03 06:58:51
【问题描述】:
我有一个基于列类型更改的表的物化视图。我想更改物化视图上的列。
我知道视图基于它的定义,但我找不到如何更新定义中的选择。
唯一的方法是删除视图并使用新定义重新创建它吗?
【问题讨论】:
标签: postgresql materialized-views
我有一个基于列类型更改的表的物化视图。我想更改物化视图上的列。
我知道视图基于它的定义,但我找不到如何更新定义中的选择。
唯一的方法是删除视图并使用新定义重新创建它吗?
【问题讨论】:
标签: postgresql materialized-views
这不是您希望得到的,但目前唯一的方法来更改物化视图所基于的查询是删除并重新创建它。在 Postgres 10 中仍然如此。
ALTER MATERIALIZED VIEW 只能更改辅助属性。您还可以更改列名称,但不能更改数据类型。
如果需要并发访问并且重新创建 MV 需要很长时间,您可以创建一个 新的 MV 以不同的名称,填充它并使用它来代替旧的,以保持停机时间最低限度 - 如果可以的话。
相关:
【讨论】: