在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_name, family_tree.family_tree_description
   FROM gfam.family_tree;如何重命名列?
发布于 2011-01-13 02:19:14
我可以重现你的错误..。在我的例子中,我创建了一个列,首先是'date‘,然后是'x’(试图查看它是否是一个保留单词的问题;它不是:
ERROR:  cannot change name of view column "date" to "x"如果您首先发出一个drop view,它将允许您重新创建带有更改名称的视图。我不知道为什么create or replace不这么做。
科林?哈特的澄清:
文件,为CREATE VIEW很好地解释了这一点,我认为:
新查询必须生成由现有视图查询生成的相同列(即相同的列名,其顺序和数据类型相同),但它可能会向列表的末尾添加其他列。
发布于 2011-01-13 07:12:52
您也可以使用ALTER TABLE view_name RENAME COLUMN foo TO bar重命名视图列。
发布于 2021-01-03 16:31:25
这是因为视图已经与列名一起保存。删除保存的视图,然后使用新的“AS”列名运行修改后的视图。
https://dba.stackexchange.com/questions/586
复制相似问题