我只是创建一个新视图,如下所示
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)
如何解决这个问题。
答案 0 :(得分:14)
如果要更改视图列的数据类型,则必须删除它,然后创建它。
创建或替换视图....新查询必须生成由现有视图查询生成的相同列(即相同顺序中的相同列名 < / strong>和相同的数据类型),但它可能会在列表末尾添加其他列。
强调补充。