postgres将视图列的数据类型从未知更改为文本

Ang*_*tra 11 postgresql view sqldatatypes

我只是创建一个新视图如下

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
Run Code Online (Sandbox Code Playgroud)

当我执行此错误出现

错误:无法将视图列"applicationid"的数据类型从未知更改为文本

虽然我已经将applicationid列的值转换为文本.它仍然被认为是未知的数据类型

'pointrewarding'::text
Run Code Online (Sandbox Code Playgroud)

postgres转换的替代方法也不起作用.

CAST('pointrewarding' AS TEXT)
Run Code Online (Sandbox Code Playgroud)

如何解决这个问题呢.

Mik*_*ll' 14

如果要更改视图列的数据类型,则必须删除它,然后创建它.

9.2版文档

CREATE OR REPLACE VIEW ....新查询必须产生由现有的视图查询(即,生成的相同的列相同的列名相同的顺序,并与相同的数据类型),但它也可以添加其它的列到列表的末尾.

强调补充说.