我有一个基于列类型更改的表的物化 View 。我想更改实体化 View 上的列。
我知道 View 基于它的定义,但我找不到如何更新定义中的选择。
唯一的方法是删除 View 并使用新定义重新创建它吗?
最佳答案
这不是您希望得到的,但目前唯一更改实体化 View 所基于的查询的方法是删除并重新创建它。在 Postgres 10 中仍然如此。
ALTER MATERIALIZED VIEW
只能更改辅助属性。您还可以更改列名称,但不能更改数据类型。
如果需要并发访问并且 MV 需要很长时间才能重新创建,您可以使用不同的名称创建一个新 MV,填充它并使用它而不是旧的 MV 以保持停机时间最低限度 - 如果可以的话。
相关:
关于postgresql - 更改物化 View 中的列类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44827436/