我想知道amazons simpledb中是否对属性名称有任何限制。我尝试了以下属性名称
my.attribute.name
运行以下查询
select * from mydomain where my.attribute.name is not null
导致错误:">指定的查询表达式语法无效。"。"my.attribute.name"周围也会导致错误,因为它是无效的选择语法。
将点更改为下划线,一切正常:
my_attribute_name
并且查询运行良好
select * from mydomain where my_attribute_name is not null
现在我的问题是:属性允许使用哪些字符?在amazon开发人员手册中,名称仅限于xml文档中有效的字符。这到底意味着什么?链接的W3C文档似乎没有回答这个问题。域名中允许使用点"."。
目前我使用的是sdbTool。我希望这不会影响行为。
在属性名称中插入一些其他字符是有效的,例如:"my:attribute-name.withother%20chars"。
有什么想法吗?
能否将属性名称用反引号括起来,然后重试?
域名&如果属性名称包含任何特殊字符,则需要将其括在反引号中。如果属性和域名仅包含字母、数字、下划线(_)或美元符号($),则它们可能不带引号。如果所有其他属性和域名包含任何特殊字符,则必须用反勾号(`)引用它们。