Ich schreibe eine Anwendung und ich muss in der Lage sein zu sagen, ob ein Einfügungen und Updates erfolgreich sind. Ich benutze "INSERT ... IF NOT EXISTS", um das leichtgewichtige Transaktionsverhalten zu erhalten, und bemerkte, dass die von execute zurückgegebene Ergebnismenge eine Zeile mit aktualisierten Daten und eine Spalte "[applied]" enthält, die abgefragt werden kann. Das ist großartig. Aber ich habe eine Update-Anweisung, die ein leeres ResultSet zurückgibt. Es scheint, als ob das Update erfolgreich ist, aber ich möchte einen programmatischen Weg, dies zu überprüfen.Cassandra Java-Treiber: Wie werden Ergebnisse zum Einfügen, Aktualisieren und Löschen gemeldet?
zu klären:
ich auf einige Protokollierung der Ergebnismengen durch meine Mutationen zurück gemacht haben. Ich habe festgestellt, dass "INSERT ... IF NOT EXIST" ein ResultSet mit einer booleschen Spalte namens "[applied]" zurückgibt. Wenn "[applied]" den Wert "false" hat, wird auch die Zeile zurückgegeben, die bereits existiert.
Mit UPDATE sehe ich immer ein leeres ResultSet.
So habe ich zwei Fragen:
- Wo ist die Dokumentation auf, was die ResultSet für jede Art von Mutation enthalten sollte? Ich habe es nicht in den CQL-Dokumenten oder in den Java-Treiber-Dokumenten gesehen. Ich habe sogar versucht, die Dokumente anderer Sprachintegrationen zu betrachten und fand keine Beschreibung des ResultSet-Inhalts für Mutationen.
- Gibt es eine Möglichkeit herauszufinden, wie viele Zeilen durch ein UPDATE geändert oder durch ein DELETE gelöscht wurden?
Ja, das ist nicht wirklich ein Hack, denn nur so scheint Cassandra das Ergebnis der Mutation mitzuteilen. Ich mache das Gleiche. Ich entdeckte dies, indem ich den Inhalt der Ergebnismengen protokollierte, von denen ich erwartete, dass sie leer waren. Ich wünschte, die Dokumentation wäre klarer zu diesem Verhalten. – AlphaGeek
Sogar du !? Wow, das ist ein ernstes Problem! – Maxim
Cassandra doc .: Ein INSERT schreibt eine oder mehrere Spalten atomar und isoliert in eine Cassandra-Tabelle. Keine Ergebnisse werden zurückgegeben. – Maxim