Próbuję usunąć za pomocą dodatkowego indeksu lub klucza kolumny w tabeli. Nie chodzi mi o wydajność, bo to będzie niezwykłe zapytanie. Nie jesteś pewien, czy to możliwe? Np .:Kasowanie Usuń według wtórnego indeksu lub zezwalając na filtrowanie
CREATE TABLE user_range (
id int,
name text,
end int,
start int,
PRIMARY KEY (id, name)
)
cqlsh> wybierz * z dat.user_range gdzie id = 774516966;
id | name | end | start
-----------+-----------+-----+-------
774516966 | 0 - 499 | 499 | 0
774516966 | 500 - 999 | 999 | 500
mogę:
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…
Ale nie mogę usunąć:
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
Nawet jeśli utworzyć indeks:
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
to możliwe, aby usunąć bez znajomości klucza głównego?