2013-01-13 191 views
2

从另一个视图创建视图有什么缺点?创建视图从视图中选择

代码示例:

CREATE OR REPLACE VIEW view1 AS 
SELECT * from table1; 

然后:

CREATE OR REPLACE VIEW view2 AS 
SELECT * from view1; 

当然这不是观点类似这样的例子,但是这是一个很好的策略?

+0

你为什么认为这可能不是一个好策略?创建从另一个视图中选择视图的原因有很多。 – Taryn

+0

对于postgres,这种方法没有任何问题。 'select from view2'的查询计划将被有效地重写为'select * from table1'。只需检查最终的计划。 – wildplasser

+0

我不知道,我想听听别人对此事的看法。也许当你改变一个有其他依赖的视图时,你必须通过所有视图进行修改? – NewK

回答

0

如果您的基础视图正在执行两个或多个表的复杂连接,并且您的新视图需要相同的数据,那么它绝对是一个非常好的策略。您可以节省自己需要再次进行同一连接的努力。

对于单个表格或简单的连接,这不是一个坏的或好主意。这是有效的,如果这就是你想要做的事情......