我是 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
;
Run Code Online (Sandbox Code Playgroud)
错误信息:
错误:无法从视图中删除列
esh*_*ana 31
正如 PostgreSQL 文档中提到的:
CREATE OR REPLACE VIEW 类似,但如果同名视图已存在,则将其替换。新查询必须生成与现有视图查询生成的列相同的列(即相同的列名、相同的顺序和相同的数据类型),但它可能会向列表末尾添加其他列。产生输出列的计算可能完全不同。
简而言之,您可以在现有列的末尾添加新列,但不能删除、重新排序、重命名或更改现有列的数据类型。
因此,就您而言,您必须了解drop
整个视图和recreate
它。
归档时间: |
|
查看次数: |
16760 次 |
最近记录: |