postgresql查询成功返回,创建视图时没有结果

时间:2016-03-29 07:19:24

标签: sql postgresql view postgresql-9.2

我已经从表中创建了一个视图

CREATE VIEW dp_val_view
AS
select dp_id,dp_id,dp_s,dp_n,dp_ord,id,answer,date,eny_date
from
 (
    select select dp_id,dp_id,dp_s,dp_n,dp_ord,id,answer,date,eny_date,row_number(*)
    over (partition by dp_id ,dp_ord ,id order by eny_date desc ) as rn
    from values 
 ) dt
where rn < 2 

查看已创建成功,我得到的查询成功返回没有结果...之后,当我尝试访问表数据时,它正在刷新表。请问表格中的值是否已插入到后台视图中?

2 个答案:

答案 0 :(得分:0)

视图只是一个&#34;快捷方式&#34;查询。没有数据存储在(常规)视图中,也没有数据插入&#34;当你运行create view时。

并且因为create view仅将查询存储在数据库中,所以它不会&#34;返回&#34;任何与create table一样的结果都不会从该表返回任何结果。

当您选择表单视图时,数据库将运行基础查询。它与您直接运行查询完全相同。

答案 1 :(得分:0)

视图只是包装器,或者换句话说我们可以说更长查询的别名。

在查询视图时,没有任何内容插入到视图中,在内部它将执行您指定的选择查询。

手册question 23296356 on so

中有一个很好的解释
  

视图没有物理实现。相反,每次在查询中引用视图时都会运行查询。