假设我有一个Cassandra表格“xyz”,其架构如下:
我想使用索引列删除数据:
为什么会出现这个错误?
create table xyz(
xyzid uuid,
name text,
fileid int,
sid int,
PRIMARY KEY(xyzid));
我在fileid和sid两列上创建了索引:
CREATE INDEX file_index ON xyz (fileid);
CREATE INDEX sid_index ON xyz (sid);
我插入数据:
INSERT INTO xyz (xyzid, name , fileid , sid ) VALUES ( now(), 'p120' , 1, 100);
INSERT INTO xyz (xyzid, name , fileid , ssid ) VALUES ( now(), 'p120' , 1, 101);
INSERT INTO xyz (xyzid, name , fileid , sid ) VALUES ( now(), 'p122' , 2, 101);
我想使用索引列删除数据:
DELETE from xyz WHERE fileid=1 and sid=101;
为什么会出现这个错误?
InvalidRequest: code=2200 [Invalid query] message="Non PRIMARY KEY fileid found in where clause"
在删除查询中,是否必须在where子句中指定主键?
Cassandra是否支持使用二级索引进行删除操作?
如何使用二级索引删除数据?
有什么建议可以帮助吗?
我正在使用Data Stax Community Cassandra 2.1.8,但我也想知道是否支持使用索引列删除的Data Stax Community Cassandra 3.2.1。
谢谢!