无法使用CREATE OR REPLACE重命名PostgreSQL视图中的列

前端之家收集整理的这篇文章主要介绍了无法使用CREATE OR REPLACE重命名PostgreSQL视图中的列前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在Postresql 8.3中,我正在尝试创建一个看起来就像现有表但具有不同列名的视图.

这很有效

CREATE OR REPLACE VIEW gfam.nice_builds AS 
 SELECT (family_tree.family_tree_id) as x,family_tree.family_tree_name,family_tree.family_tree_description
   FROM gfam.family_tree;

上面的内容与family_tree表重复,但以下尝试失败:

CREATE OR REPLACE VIEW gfam.nice_builds AS 
 SELECT (family_tree.family_tree_id) as x,family_tree.family_tree_description
   FROM gfam.family_tree;

>错误:无法更改视图列“family_tree_id”的名称

如何重命名列?

我可以重现你的错误…在我的情况下,我首先创建了一个列作为’date’然后作为’x'(试图查看它是否是一个保留字的问题;它不是:
ERROR:  cannot change name of view column "date" to "x"

如果您首先发出删除视图,它将允许您使用更改的名称重新创建视图.我不知道为什么创建或替换不会这样做.

Colin ‘t Hart澄清:

documentation for CREATE VIEW解释得很好,我想:

The new query must generate the same columns that were generated by the existing view query (that is,the same column names in the same order and with the same data types),but it may add additional columns to the end of the list.

猜你在找的Postgre SQL相关文章