V PostreSQL 8.3 se pokouším vytvořit pohled, který bude vypadat stejně jako existující tabulka, ale bude mít odlišné názvy sloupců.
To funguje
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;
Výše uvedené je duplikát tabulky family_tree, ale následující pokus se nezdaří:
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;
Jak lze přejmenovat sloupce?
Dokážu reprodukovat vaši chybu ... v mém případě jsem nejprve vytvořil sloupec jako „datum“, poté jako „x“ (snažil jsem se zjistit, zda se jedná o problém s vyhrazeným slovem; nebylo to:
ERROR: cannot change name of view column "date" to "x"
Pokud vydáte drop view
nejprve vám umožní znovu vytvořit pohled se změněným názvem. Nemám ponětí, proč create or replace
to neudělá.
Objasnění Colin 't Hart :
dokumentace pro CREATE VIEW
to vysvětluje docela dobře, myslím:
Nový dotaz musí vygenerovat stejné sloupce, které byly vygenerovány existujícím zobrazovacím dotazem (tj. Stejné názvy sloupců ve stejném pořadí a se stejnými datovými typy), ale na konec seznamu může přidat další sloupce.
Můžeš použít ALTER TABLE tbl RENAME COLUMN foo TO bar
pro přejmenování sloupců zobrazení.