首页 > 解决方案 > Postgresql 错误:无法从视图中删除列

问题描述

我是 postgresql 的新手。任何人都可以提出这个错误的原因和解决方案吗?但是,如果我选择一个额外的总和(s.length),它会起作用,但我不会在我的结果中这样做。

代码:

create or replace view q1("group",album,year)
as
select g.name, a.title, a.year
from Groups g, Albums a, Songs s
where a.made_by = g.id and s.on_album = a.id
group by a.title, g.name, a.year
order by sum(s.length) desc 
limit 1
;

错误信息:

错误:无法从视图中删除列

标签: sqlpostgresql

解决方案


正如 PostgreSQL 文档中提到的那样:

CREATE OR REPLACE VIEW 类似,但如果已经存在同名视图,则将其替换。新查询必须生成与现有视图查询相同的列(即,相同的列名以相同的顺序和相同的数据类型),但它可能会在列表末尾添加其他列。产生输出列的计算可能完全不同。

参考链接

因此,在您的情况下,您必须删除整个视图并重新创建它。


推荐阅读