hstore
我想知道是否有人知道对PostgreSQL 9.2 中的列进行的这个简单查询出了什么问题
查询在 pgAdmin 中运行
select attributeValue->"CODE_MUN" from shapefile_feature
返回:«属性值»列不存在
做的时候:
select * from shapefile_feature;
返回所有列,包括attributeValue、hstore 列
问题是什么?
hstore
我想知道是否有人知道对PostgreSQL 9.2 中的列进行的这个简单查询出了什么问题
查询在 pgAdmin 中运行
select attributeValue->"CODE_MUN" from shapefile_feature
返回:«属性值»列不存在
做的时候:
select * from shapefile_feature;
返回所有列,包括attributeValue、hstore 列
问题是什么?
PostgreSQL 区分“标识符”和“文字”。标识符是模式,表,列,..名称,文字是其他的。hstore 中的属性不是 SQL 标识符。所以你必须将他们的名字作为文字传递。运算符“->”是函数“fetchval(hstore, text)”的唯一快捷方式,有可能被索引。
从 shapefile_feature 中选择 attributeValue->'CODE_MUN'
内部转换为(不要自己进行这种转换!)
从 shapefile_feature 中选择 fetchval(attributeValue, 'CODE_MUN')
在转换形式的错误示例中,您可以更好地理解错误消息:
从 shapefile_feature 中选择 fetchval(attributeValue, "CODE_MUN")
PostgreSQL 尝试在 shapefile_feature 中查找列“CODE_MUN”,因为使用的双引号表示标识符(在区分大小写的符号中)。