No PostreSQL 8.3, estou tentando criar uma visão que se pareça com uma tabela existente, mas com nomes de colunas diferentes.
Isso funciona
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;
O acima faz uma duplicata da tabela family_tree, mas a tentativa a seguir falha:
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;
- ERRO: não é possível alterar o nome da coluna de visualização "family_tree_id"
Como posso renomear colunas?
Eu posso reproduzir seu erro ... no meu caso, criei uma coluna primeiro como 'data' depois como 'x' (estava tentando ver se era um problema com uma palavra reservada; não era:
Se você emitir um
drop view
primeiro, ele permitirá que você recrie a exibição com um nome alterado. Não faço ideia porquecreate or replace
não o faria.Esclarecimento de Colin't Hart :
A documentação para
CREATE VIEW
explica muito bem, eu acho:Você também pode usar
ALTER TABLE view_name RENAME COLUMN foo TO bar
para renomear colunas de visualização.Isso ocorre porque a visualização já está salva com os nomes das colunas. Exclua a exibição salva e execute a exibição modificada com os novos nomes de coluna 'AS'.