将视图转换为PostgreSQL中的表

dba*_*ton 8 postgresql

我有一个观点view_a在我的数据库上其他几个视图依赖(view_b,view_c,等)

我需要转换view_a为表格,因为我不再希望此关系中的信息是动态的,我需要手动编辑行的功能.

我可以替换view_a表而不进行操作DROP CASCADE并重新定义所有引用的视图view_a吗?

澄清:我想要view_bview_c继续参考view_a(现在是一张表).我想用一个表替换一个视图,除了一个视图之外没有一个表.

dba*_*ton 16

我能够在不追踪和重新定义所有依赖的对象的情况下解决这个问题view_a,但代价是增加了一个级别的无用重定向.

-- create a copy of the result of view_a
CREATE TABLE table_a AS SELECT * FROM view_a;

-- redefine view_a to its own result
CREATE OR REPLACE VIEW view_a AS SELECT * FROM table_a;
Run Code Online (Sandbox Code Playgroud)