更改物化视图中的列类型

Change column type in a materialized view

我有一个基于 table 的实体化视图,其中的列类型发生了变化。我想更改实体化视图上的列。

我知道视图基于它的定义,但我找不到如何更新定义中的 select。

唯一的方法是删除视图并使用新定义重新创建它吗?

这不是您希望得到的结果,但目前更改实体化视图所基于的查询的唯一方法是删除并重新创建它。在 Postgres 10 中仍然如此。

ALTER MATERIALIZED VIEW只能改变辅助属性。您还可以更改列 名称 ,但不能更改数据类型。

如果需要并发访问并且 MV 需要很长时间才能重新创建,您可以使用不同的名称创建一个 MV,填充它并使用它而不是旧的一个是将停机时间保持在最低限度 - 如果这是一个选项。

相关: