我在Postgres 9.3中有一个物化视图,我想用新列更新.但是,其他物化视图也依赖于此视图,并且错误消息指示当其他对象依赖于视图时,无法删除视图.
ERROR: cannot drop materialized view latest_charges because other objects depend on it
从文档中还可以看出,REPLACE关键字对于物化视图无效.除了丢弃所有依赖对象并重建每个对象之外,还有什么捷径吗?
从Postgresql 9.4开始:与
documentation of CREATE VIEW不同,CREATE MATERIALIZED VIEW的文档没有提到REPLACE关键字.除了丢弃所有依赖对象并重建每个依赖对象之外,似乎没有捷径.
当你这样做时,我只能推荐两件小事:
>使用DROP MATERIALIZED VIEW blabla CASCADE获取所有相关对象的列表>在一个事务中删除和重新创建所有依赖对象.