2017-09-26 53 views
2

我刚刚从arangoDB读取问题github [1.1]功能请求:在唯一约束违规例外包括ID或密钥涉及#342https://github.com/arangodb/arangodb/issues/342),因为它正是我正在寻找。 显然这个问题已经关闭,因为它已经在ArangoDB 3.2中实现,但是我没有找到从唯一约束违规错误中检索id或密钥的方法。ArangoDB 3.2违反唯一约束_id或_key

例如,我在“projectName”属性上使用散列索引对集合调用以下AQL查询。

# first insert - everything OK 
INSERT {"projectName":"test","startDate":"now"} IN projects 
RETURN NEW 

# second insert - will give unique constraint violation error 
INSERT {"projectName":"test","startDate":"tomorrow"} IN projects 
RETURN NEW 

所以我得到的错误是:AQL: unique constraint violated (while executing). Errors: {u'code': 409, u'errorNum': 1210, u'errorMessage': u'AQL: unique constraint violated (while executing)', u'error': True} 没有_key或_id或者一些有关说明我与文件我有违反唯一约束。基于这个封闭的问题,它应该是可能的,但我不知道如何,或者我只是误解了它。

注:类似的问题被张贴在Determining which unique constraint caused INSERT failure in ArangoDB,但我认为它的ArangoDB 3.2

释放我使用ArangoDB面前回答3.2.3

感谢

回答

1

它看起来像了当触发AQL内的唯一约束违规时,索引细节仍然被省略。在这种情况下,它只会显示/返回一个通用的“违反唯一约束”,但不会指出哪个索引导致它。

这是无意的,现在有一个拉请求解决这个问题:

https://github.com/arangodb/arangodb/pull/3330