PostgreSQL - 对hstore的查询 - 列不存在

时间:2013-08-10 20:37:36

标签: postgresql hstore

我想知道是否有人可以知道PostgreSQL 9.2中hstore列上的这个简单查询出了什么问题

查询在pgAdmin

中运行
select attributeValue->"CODE_MUN" from shapefile_feature

返回:«attributevalue»列不存在

做的时候:

select * from shapefile_feature;

返回所有列,包括attributeValue,hstore列

问题是什么?

1 个答案:

答案 0 :(得分:4)

PostgreSQL区分“标识符”和“文字”。标识符是模式,表,列,...名称,文字是其他标识符。 hstore中的属性不是SQL标识符。所以你必须将他们的名字作为文字。运营商“ - >”只是函数“fetchval(hstore,text)”的快捷方式,可以编制索引。

select attributeValue->'CODE_MUN' from shapefile_feature

在内部转换为(不要自己做这个转换!)

select fetchval(attributeValue, 'CODE_MUN') from shapefile_feature

关于转换形式的错误示例,您可以更好地理解错误消息:

select fetchval(attributeValue, "CODE_MUN") from shapefile_feature

PostgreSQL尝试在shapefile_feature中找到列“CODE_MUN”,因为使用双引号表示标识符(如果是敏感表示法)。