我将 Cassandra 1.2.25 与 cqlsh 一起使用,所有 CQL 语句都是 CQL3。我正在创建一个 CF,然后在列上添加一个二级索引。在我添加二级索引之后(如此处所述:http ://www.datastax.com/docs/1.1/ddl/indexes ),我希望 UPDATE 语句能够在 WHERE 子句中使用二级索引列。可悲的是他们没有。
创建了表架构:
CREATE TABLE registry (referencesetid uuid, referenceid uuid, acquirebyendpoint uuid, name text, PRIMARY KEY (referencesetid, referenceid) )
添加了索引:
CREATE INDEX nameidx ON registry (name);
插入一行:
插入注册表(referenceSetId,referenceId,acquiredByEndpoint,名称)值(96ade698-09c5-46f0-beb4-b842e5352bc8,a97c6163-f4bc-4eaf-a7e0-700578bdc44c,00000000-0000-0000-0000-00000);
执行更新查询(在 WHERE 子句中,我指的是 nameidx,因为这是索引字段 'name' 的名称):
更新注册表SET acquirebyendpoint=00000000-0000-0000-0000-000000000001 其中nameidx='John' AND referencesetid=36da89c3-f256-4d56-83c0-37569311a8a0;
错误 :
错误请求:未知密钥标识符 nameidx
有没有人有任何建议我做错了什么?
它可能不太明显(即配置文件或 C* 版本),因为 C* 索引文档在我看来很简单。
干杯保罗。