2017-09-26 3 views
2

Ich habe gerade gelesen das Problem von arangoDB Github [1.1] Feature-Anfrage: Auf einzigartige constrain Verletzung Ausnahmen ids oder Schlüssel enthalten, die # 342 (https://github.com/arangodb/arangodb/issues/342) beteiligt waren, weil es genau das, was ich war auf der Suche nach. Anscheinend ist dieses Problem bereits geschlossen, weil es in ArangoDB 3.2 implementiert wurde, aber ich finde den Weg nicht, die ID oder den Schlüssel von einem eindeutigen Beschränkungsverletzungsfehler zurückzuholen.ArangoDB 3.2 eindeutige Einschränkung Verletzung _id oder _key

Zum Beispiel rufe ich die folgende AQL-Abfrage für eine Sammlung mit einem Hash-Index auf "Projektname" -Attribut.

# 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 

Daher ist der Fehler, die ich bekommen ist: 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} ohne _key oder _id oder etwas, das mich mit dem Dokument sagt ich eine eindeutige Einschränkung Verletzung haben. Basierend auf dem geschlossenen Thema sollte es möglich sein, aber ich sehe nicht, wie, oder vielleicht habe ich es einfach falsch verstanden.

Hinweis: Eine ähnliche Frage wurde in Determining which unique constraint caused INSERT failure in ArangoDB geschrieben, aber ich denke, dass es vor der Veröffentlichung von ArangoDB 3.2

Ich verwende ArangoDB 3.2.3

Dank

Antwort

1

Es sieht aus wie, dass die beantwortet wurde Indexdetails werden weiterhin ausgelassen, wenn eine eindeutige Integritätsverletzung in AQL ausgelöst wird. In diesem Fall wird nur eine generische "eindeutige Einschränkung verletzt" angezeigt/zurückgegeben, aber nicht angegeben, welcher Index sie verursacht hat.

Dies ist unbeabsichtigt, und es gibt jetzt eine Pull-Anforderung dieses Problem zu beheben:

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

Verwandte Themen