在 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;
- 错误:无法更改视图列“family_tree_id”的名称
如何重命名列?
我可以重现您的错误......在我的情况下,我首先创建了一个列作为“日期”然后作为“x”(试图查看它是否是保留字的问题;它不是:
如果您发出
drop view
第一个,它将让您重新创建具有更改名称的视图。我不知道为什么create or replace
不这样做。Colin 't Hart 的澄清:
我认为的文档
CREATE VIEW
很好地解释了它:您也可以使用
ALTER TABLE view_name RENAME COLUMN foo TO bar
重命名视图列。这是因为视图已经与列名一起保存。删除保存的视图,然后使用新的“AS”列名运行修改后的视图。