如何在ORDER BY子句中使用此主键中的第二列,以及使用UPDATE命令更新它

时间:2015-03-09 21:53:31

标签: cassandra

下面是表格。

CREATE TABLE threadpool(
threadtype int, 
threadid bigint, 
jobcount bigint, 
valid boolean, 
PRIMARY KEY (threadtype, jobcount, threadid)
);

我想在此表上运行以下2个查询。

  1. SELECT * FROM threadpool WHERE threadtype = 1 ORDER BY jobcount ASC LIMIT 1;

  2. UPDATE threadpool SET valid = false WHERE threadtype = 1 and threadid = 4;

  3. 第二个查询失败,原因如下。

    InvalidRequest: code=2200 [Invalid query] message="PRIMARY KEY column "threadid" cannot be restricted (preceding column "jobcount" is either not restricted or by a non-EQ relation)"
    

    任何正文都可以帮我建模数据以支持上述查询。

1 个答案:

答案 0 :(得分:1)

您描述的数据模型无法正常工作,如

  • 只能使用CQL语句递增数据类型counter的值
  • 计数器表只能将计数器作为PK
  • 旁边的单个列
  • 您无法按计数器值排序