In PostreSQL 8.3 versuche ich, eine Ansicht zu erstellen, die genau wie eine vorhandene Tabelle aussieht, aber unterschiedliche Spaltennamen hat.
Das funktioniert
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;
Oben wird ein Duplikat der Tabelle family_tree erstellt, aber der folgende Versuch schlägt fehl:
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;
Wie kann ich Spalten umbenennen?
Ich kann Ihren Fehler reproduzieren ... in meinem Fall habe ich zuerst eine Spalte als 'Datum' und dann als 'x' erstellt (ich habe versucht festzustellen, ob es sich um ein Problem mit einem reservierten Wort handelt; es war nicht:
ERROR: cannot change name of view column "date" to "x"
Wenn Sie ein drop view
Zuerst können Sie die Ansicht mit einem geänderten Namen neu erstellen. Ich habe keine Idee warum create or replace
wird es nicht tun.
Klarstellung durch Colin 't Hart :
Die Dokumentation für CREATE VIEW
erklärt es ziemlich gut, ich denke:
Die neue Abfrage muss dieselben Spalten generieren, die von der vorhandenen Ansichtsabfrage generiert wurden (dh dieselben Spaltennamen in derselben Reihenfolge und mit denselben Datentypen), kann jedoch zusätzliche Spalten am Ende der Liste hinzufügen.
Mit ALTER TABLE tbl RENAME COLUMN foo TO bar
Können Sie auch Ansichtsspalten umbenennen.