2017-09-26 78 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