簡體   English   中英

ArangoDB 3.2 唯一約束違反 _id 或 _key

[英]ArangoDB 3.2 unique constraint violation _id or _key

我剛剛從 arangoDB github [1.1] 功能請求中讀取了問題:關於唯一約束違規異常包括涉及 #342 ( https://github.com/arangodb/arangodb/issues/342 ) 的id 或鍵,因為它正是我正在尋找。 顯然這個問題已經關閉,因為它已經在 ArangoDB 3.2 中實現了,但是我沒有找到從唯一約束沖突錯誤中檢索 id 或鍵的方法。

例如,我在“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} 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 或其他內容告訴我哪個文檔存在唯一約束違規。 基於已關閉的問題,它應該是可能的,但我不明白如何,或者我只是理解錯了。

注意:在確定哪個唯一約束導致 ArangoDB 中的插入失敗中發布了一個類似的問題但我認為它在 ArangoDB 3.2 發布之前得到了回答

我正在使用 ArangoDB 3.2.3

謝謝

從 AQL 中觸發唯一約束違規時,索引詳細信息似乎仍被忽略。 在這種情況下,它只會顯示/返回一個通用的“違反唯一約束”,但不會指出是哪個索引導致的。

這是無意的,現在有一個 pull request 來解決這個問題:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM