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

时间:2013-05-16 11:26:44

标签: 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

当我执行此错误时出现

  

错误:无法更改视图列“applicationid”的数据类型   文字未知

虽然我已经将applicationid列的值转换为text。它仍然被识别为未知数据类型

'pointrewarding'::text

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

CAST('pointrewarding' AS TEXT)

如何解决这个问题。

1 个答案:

答案 0 :(得分:14)

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

Version 9.2 docs

  

创建或替换视图....新查询必须生成由现有视图查询生成的相同列(即相同顺序中的相同列名 < / strong>和相同的数据类型),但它可能会在列表末尾添加其他列。

强调补充。