想知道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 developer manual 上,名称仅限于 xml 文档中有效的字符。这到底是什么意思?链接的 W3C 文档似乎没有回答这个问题。在域名中,点“.”是允许的。
目前我使用sdbTool。我希望这不会影响行为。
在属性名称中插入一些其他字符是可行的,例如:'my:attribute-name.with other%20chars'。
有什么想法吗?
能否请您用反引号括起您的属性名称,然后重试?
域名和属性名如果包含任何特殊字符,需要用反引号括起来。如果属性和域名仅包含字母、数字、下划线 (_) 或美元符号 ($),则它们可能不带引号。如果所有其他属性和域名包含任何特殊字符,则必须用反引号 (`) 将它们引号。