Ich versuche, durch einen sekundären Index oder Spaltenschlüssel in einer Tabelle zu löschen. Ich bin nicht mit der Leistung beschäftigt, da dies eine ungewöhnliche Abfrage sein wird. Nicht sicher, ob es möglich ist? Z.B .:Cassandra Löschen nach Sekundärindex oder Filter zulassen
CREATE TABLE user_range (
id int,
name text,
end int,
start int,
PRIMARY KEY (id, name)
)
cqlsh> select * from dat.user_range wo id = 774516966;
id | name | end | start
-----------+-----------+-----+-------
774516966 | 0 - 499 | 499 | 0
774516966 | 500 - 999 | 999 | 500
Ich kann:
cqlsh> select * from dat.user_range where name='1000 - 1999' allow filtering;
id | name | end | start
-------------+-------------+------+-------
-285617516 | 1000 - 1999 | 1999 | 1000
-175835205 | 1000 - 1999 | 1999 | 1000
-1314399347 | 1000 - 1999 | 1999 | 1000
-1618174196 | 1000 - 1999 | 1999 | 1000
Blah blah…
Aber ich kann nicht löschen:
cqlsh> delete from dat.user_range where name='1000 - 1999' allow filtering;
Bad Request: line 1:52 missing EOF at 'allow'
cqlsh> delete from dat.user_range where name='1000 - 1999';
Bad Request: Missing mandatory PRIMARY KEY part id
Selbst wenn ich einen Index erstellen:
cqlsh> create index on dat.user_range (start);
cqlsh> delete from dat.user_range where start=1000;
Bad Request: Non PRIMARY KEY start found in where clause
Ist es möglich, löschen ohne zuerst den Primärschlüssel zu kennen?