我正在尝试通过表中的二级索引或列键进行删除.我不关心性能,因为这将是一个不寻常的查询.不确定是否可能?例如:
CREATE TABLE user_range (
id int,
name text,
end int,
start int,
PRIMARY KEY (id, name)
)
Run Code Online (Sandbox Code Playgroud)
cqlsh> select*from dat.user_range,其中id = 774516966;
id | name | end | start
-----------+-----------+-----+-------
774516966 | 0 - 499 | 499 | 0
774516966 | 500 - 999 | 999 | 500
Run Code Online (Sandbox Code Playgroud)
我可以:
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…
Run Code Online (Sandbox Code Playgroud)
但我无法删除:
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
Run Code Online (Sandbox Code Playgroud)
即使我创建了一个索引:
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
Run Code Online (Sandbox Code Playgroud)
是否可以在不知道主键的情况下删除?
我来这里寻找从 cassandra 列族中删除行的解决方案。我最终执行了 INSERT 并设置了 TTL(生存时间),这样我就不必担心删除它。
把它放在那里,可能会对某人有所帮助。
归档时间: |
|
查看次数: |
12508 次 |
最近记录: |