我们正在重构表和视图的结构,其中一项改进是将一个表(从 java 类“手动”更新)更改为连续视图。
视图的名称必须与旧表相同,并且必须保留旧数据,所以我认为这些步骤是合乎逻辑的:
- ALTER TABLE old_table 重命名为 old_table_temp
- 创建新的连续视图
- 插入到 new_continuous_view SELECT * FROM old_table_temp
- 删除 old_table_temp
我现在遇到的问题是,在重命名表时,所有依赖视图仍将依赖于新命名的表,因此我无法删除它。错误如下所示:
analytics=> drop table renamed_table;
ERROR: cannot drop table renamed_table because other objects depend on it
DETAIL: continuous view cview1 depends on table renamed_table
continuous view cview2 depends on table renamed_table
continuous view cview3 depends on table renamed_table
continuous view cview4 depends on table renamed_table
任何想法都会受到赞赏,即使它是一种不同的方法。