2013-05-16 12 views
9

in Text schaffe ich gerade eine neue Ansicht alspostgres ändern Datentyp Ansicht Spalte von unkown

CREATE OR REPLACE VIEW gettreelistvw AS 
SELECT "CRM".groupid, 'pointrewarding'::text AS applicationid, "CM".menuid, "CM".menuname, "CM".levelstructure, "CM".moduleid, "CM".haschild, "CM".installed 
    FROM core_capabilitymap "CRM" 
    JOIN core_menus "CM" ON "CRM".menuid::text = "CM".menuid::text; 

ALTER TABLE gettreelistvw 

folgt, wenn ich diesen Fehler

ERROR: cannot change data type of view column "applicationid" from unknown to text

obwohl ich bereits den Wert von applicationID erscheinen ausführen gegossen Spalte zu Text. es ist immer noch als unbekannter Datentyp erkannt

'pointrewarding'::text 

Die alternative Methode der Postgres-Konvertierung hat auch nicht funktioniert.

CAST('pointrewarding' AS TEXT) 

So lösen Sie dieses Problem.

+0

Sie sollten dies auf dem StackExchange DBA überprüfen: http://dba.stackexchange.com/questions/586/cant-rename-columns-in-postgresql-views-with-create-or-replace – Red15

Antwort

13

Wenn Sie den Datentyp der Spalten einer Ansicht ändern möchten, müssen Sie sie löschen und dann erstellen.

Version 9.2 docs

CREATE OR REPLACE VIEW .... The new query must generate the same columns that were generated by the existing view query (that is, the same column names in the same order and with the same data types), but it may add additional columns to the end of the list.

Hervorhebung hinzugefügt.