ich eine Tabelle mit Zählerspalte in com.datastax.driver.core Pakete verwenden, und eine Funktion in der Klasse:Wie wird der Datensatz mit der Zählerspalte zurückgesetzt, nachdem er in Cassandra gelöscht wurde?
public void doStartingJob(){
session.execute("CREATE KEYSPACE myks WITH replication "
+ "= {'class':'SimpleStrategy', 'replication_factor':1};");
session.execute("CREATE TABLE myks.clients_count(ip_address text PRIMARY KEY,"
+ "request_count counter);");
}
Nach diesem I gelöscht Tabelleneintrag von CQLSH wie:
[email protected]:~$ cqlsh
Connected to Test Cluster at 127.0.0.1:9042.
[cqlsh 5.0.1 | Cassandra 3.9 | CQL spec 3.4.2 | Native protocol v4]
Use HELP for help.
cqlsh:myks> DELETE FROM clients_count WHERE ip_address='127.0.0.1';
Dann Zeile mit demselben Primärschlüssel einzufügen I folgende Erklärung verwendet (via cqlsh):
UPDATE myks.clients_count SET request_count = 1 WHERE ip_address ='127.0.0.1';
Und es ist nicht erlaubt als:
InvalidRequest: Error from server: code=2200 [Invalid query] message="Cannot set the value of counter column request_count (counters can only be incremented/decremented, not set)"
Aber, ich möchte den Wert von Zählerspalte Rekord sollte auf 1, und mit dem gleichen Primärschlüssel festgelegt werden. (Funktionale Anforderung)
Wie das gleiche ??
nach DELETE nach den UPDATE-Myks.clients_count SET request_count = 1 WHERE IP_Adresse = '127.0.0.1'; wenn ich über UPDATE neu aktualisiere myks.clients_count SET request_count = request_count +1 WHERE ip_address = '127.0.0.1'; Es funktioniert und aktualisiert den Zähler mit dem Wert, den ich gelöscht habe. –
Thankyou @ xmas79 –
** Counter-Datensatz wird nie gelöscht ** Siehe [THIS.] (Http://stackoverflow.com/a/13694777/7081346) –