0

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

查询在 pgAdmin 中运行

select attributeValue->"CODE_MUN" from shapefile_feature

返回:«属性值»列不存在

做的时候:

select * from shapefile_feature;

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

问题是什么?

4

1 回答 1

4

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”,因为使用的双引号表示标识符(在区分大小写的符号中)。

于 2013-08-11T04:51:38.147 回答