这有效
上面的内容与family_tree表相同,但以下尝试失败:
如何重命名列?
#1 楼
我可以重现您的错误...在我的情况下,我首先创建了一个列作为“日期”,然后创建了“ x”(试图查看是否是保留字的问题;不是:ERROR: cannot change name of view column "date" to "x"
如果您首先发布
drop view
,它将让您以更改的名称重新创建视图。我不知道为什么create or replace
不会这样做。 > Colin't Hart所作的澄清:
CREATE VIEW
的文档解释得很好,我认为:新查询必须生成与现有视图查询生成的列相同的列(即,相同的列名以相同的顺序和相同的数据类型),但是它可能会在列表的末尾添加其他列。 >
#2 楼
您也可以使用ALTER TABLE view_name RENAME COLUMN foo TO bar
重命名视图列。评论
这里是什么?是为其创建视图的实际表,还是视图名称?
– Eugen Konkov
19年1月17日在11:48
@EugenKonkov看来是这样。我测试了它并且有效
–DatabaseShouter
19年11月21日在11:11
评论
确实,您必须将新列添加到SELECT列列表的末尾,否则会出现错误!
–user4584
15年3月24日在8:55
有点离题的评论:当试图借助视图聚合来自两个表的数据时,我遇到了类似的问题。但是实际上,对于相同的命名列,我有不同的类型(第一个表中的VARCHAR和第二个表中的TEXT)。我花了很多时间进行调查,直到发现IDE为两个表都显示VARCHAR!只有纯pg_dump帮助了我。
– flz14
16 Jun 23'11:01