OSQL创建指定名称的索引报错,求正确创建方式
ArcadeDB 指定索引名称创建失败的问题解决
错误原因
你使用的SQL语法不符合ArcadeDB的规范。ArcadeDB不支持直接将索引名称放在CREATE INDEX之后的写法,必须通过NAME关键字来声明自定义索引名称。你的语句中直接在INDEX后写idxName,导致语法解析器在处理(name)时无法识别预期的语法结构,从而抛出错误。
正确的带名称索引创建语句
修正后的SQL需要将索引名称通过NAME关键字放在语句末尾,示例如下:
CREATE INDEX IF NOT EXISTS ON GeneralizedInformationRoot (name) UNIQUE NAME idxName;
如果不需要IF NOT EXISTS判断,可简化为:
CREATE INDEX ON GeneralizedInformationRoot (name) UNIQUE NAME idxName;
额外说明
- 不指定索引名称时,ArcadeDB会自动生成格式为
<类名>_<属性名>_<索引类型>的默认索引名,这也是无名称索引能成功创建的原因。 - 若要创建多属性复合索引,只需在括号内用逗号分隔属性名,同样通过
NAME指定自定义名称即可。
内容的提问来源于stack exchange,提问作者Ironluca
相关产品推荐
相关产品推荐

