sql - 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
;
错误信息:
错误:无法从视图中删除列
解决方案
正如 PostgreSQL 文档中提到的那样:
CREATE OR REPLACE VIEW 类似,但如果已经存在同名视图,则将其替换。新查询必须生成与现有视图查询相同的列(即,相同的列名以相同的顺序和相同的数据类型),但它可能会在列表末尾添加其他列。产生输出列的计算可能完全不同。
参考链接
因此,在您的情况下,您必须删除整个视图并重新创建它。
推荐阅读
- reactjs - React this.context 在 React Native 0.61 中返回空对象 {}
- java - 我可以在 zk 的 hbox 中使用包含吗?
- python - 如何使用“columns.str.replace”替换数据集中的每个列名,其中包含 500 列?
- oracle - alter a trigger with different name
- http - 我应该将 Cache-Control: no-cache 添加到我的 REST API 的 GET 端点吗?
- c++ - 该库无法在 Qt 中链接
- c# - 使用 C# 获取 RabbitMQ 服务器上所有已声明交换的列表
- c# - 如果我超过 Google SMTP 发送限制,我的 C# 代码会发生什么
- python - 使用 Python Flask 时 Localhost:5000 继续加载
- shopify - 循环浏览特定集合中的产品