postgres将视图列的数据类型从未知更改为文本
Posted
技术标签:
【中文标题】postgres将视图列的数据类型从未知更改为文本【英文标题】:postgres change data type of view column from unknown to text 【发布时间】:2013-05-11 06:35:04 【问题描述】:我只是创建一个新视图如下
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 列的值转换为文本。它仍然被识别为未知数据类型
'pointrewarding'::text
postgres 转换的替代方法也不起作用。
CAST('pointrewarding' AS TEXT)
如何解决这个问题。
【问题讨论】:
您应该在 StackExchange DBA 上查看:dba.stackexchange.com/questions/586/… 【参考方案1】:如果您想更改视图列的数据类型,您必须先删除它,然后再创建它。
Version 9.2 docs
CREATE OR REPLACE VIEW .... 新查询必须生成与现有视图查询相同的列(即相同的列名以相同的顺序 并且具有相同的数据类型),但它可能会在列表末尾添加其他列。
添加了重点。
【讨论】:
以上是关于postgres将视图列的数据类型从未知更改为文本的主要内容,如果未能解决你的问题,请参考以下文章
将提取的文本字符串转换为 Postgres 中字符串长度不同的日期
SQL Server 2012 如何将列的数据类型从位更改为日期字段?
Postgres 和 Laravel 如何将列从字符串类型更改为整数?