postgresql - 更改物化 View 中的列类型

标签 postgresql materialized-views

我有一个基于列类型更改的表的物化 View 。我想更改实体化 View 上的列。

我知道 View 基于它的定义,但我找不到如何更新定义中的选择。

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

最佳答案

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

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

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

相关:

关于postgresql - 更改物化 View 中的列类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44827436/

相关文章:

database - Django 无法连接到 Opensuse 上的 Postgresql

sql - Postgres 窗口函数和异常分组

database - PostgreSQL Clob 数据类型

postgresql - 使用 postgresql_fdw 在外部表上实现物化 View

Oracle - FAST REFRESH 使用 LEFT JOINS 更新的物化 View 非常慢

sql - Oracle 流和物化 View 之间的区别

oracle - 在 Oracle 中创建包含部分主键的物化 View 时无法设置 ON COMMIT 刷新属性

postgresql - postgres 选择当前搜索路径中的所有表?

perl - 让 SQLite 在事务错误时表现得更像 Postgres?

oracle - Oracle物化 View 记录会自动获取时间戳吗?