当前位置: 首页 > 知识库问答 >
问题:

使用IN子句更新多个群集列时“主键IN运算符无效”

殳宸
2023-03-14
CREATE TABLE IF NOT EXISTS my_counters (
  partition_key text, 
  clustering_key text,
  count counter,
  PRIMARY KEY ((partition_key), clustering_key)
);

我现在要在两个群集键下递增计数器。根据更新规范,这应该是可能的:http://docs.datastax.com/en/cql/3.1/cql/cql_reference/update_r.html

UPDATE my_counters SET count = count + 1 WHERE partition_key = ? AND clustering_key IN (?, ?)

这是计数器的特定限制吗?我知道我可以使用每个查询一个聚类键来编写计数器批处理,但我宁愿不这样做。

共有1个答案

阎坚成
2023-03-14

在http://docs.datastax.com/en/cql/3.3/cql/cql_reference/update_r.html中,仅对分区键的最后一列支持IN关系。

此外,如果没有指定完整的主键(分区键+群集键),则无法进行更新

create table spending_by_country_state (country text,state text,amount int, primary key ((country,state)));

select * from spending_by_country_state;

 country | state     | amount
---------+-----------+--------
   India | Karnataka |  20000
   India |    Kerala |  10000

cqlsh:test> update spending_by_country_state set amount = 10001 where country = 'India' and state in ('Karnataka','Kerala');
cqlsh:test> select * from spending_by_country_state;

 country | state     | amount
---------+-----------+--------
   India | Karnataka |  10001
   India |    Kerala |  10001

(2 rows)
 类似资料:
  • 本文向大家介绍MySQL XOR运算符与IN子句?,包括了MySQL XOR运算符与IN子句?的使用技巧和注意事项,需要的朋友参考一下 如果一个或另一个操作数(或表达式)但不是两个都为TRUE,则MySQL XOR返回TRUE。IN子句用于指定任何其他MySQL查询的条件。 让我们先创建一个表 使用插入命令在表中插入一些记录- 使用select语句显示表中的所有记录- 输出结果 这将产生以下输出-

  • 问题内容: 需要知道如何构造一个hibernate查询,该查询可获取与包含多个列值的子句匹配的结果。 例如, 这里将是一个二维数组,可以包含用于基本类型例如,基本包装对象,等等。 这可能吗? 问题答案: 在这里写下我如何实现此目标。基本上,我们需要从需要查询的列集中制作一个Hibernate组件(读取@Embeddable对象),并将其嵌入到主实体中。 列组可以如下组合: 将上述内容嵌入到您的主要

  • 问题内容: 我有一个数据库,其中有四列对应于开始和结束位置的地理坐标x,y。这些列是: 00 00 x1 11 我有这四个列的索引,其顺序为x0,y0,x1,y1。 我列出了大约一百种地理对组合。我将如何有效地查询此数据? 我想按照此SO答案的建议执行类似的操作,但它仅适用于Oracle数据库,不适用于MySQL: 我以为可能对索引做些什么?最好的方法是什么(即:最快的查询)?谢谢你的帮助! 笔记

  • 问题内容: 我正在寻找使用sqlalchemy执行此查询。 我只想要喜欢(薰衣草和扁豆汤)或(黑胡萝卜汁)的孩子。另外,这可能是大量喜欢的颜色和食物的列表(可能> 10K),因此,我想分批进行。 问题答案: 您需要构造:

  • 如何使用hibernateTemplate执行批量更新操作。下面的代码抛出 原因:org。冬眠QueryParameterException:位置超出已声明序数参数的数量。请记住,序数参数是基于1的!职位:2 如何通过将用户列表作为参数传递来实现此批量更新操作???

  • 我试图运行以下查询从SpringBoot仓库 但总是命中错误:绑定变量的数量无效。 请就如何进一步进行提出建议。 注:我确实遵循了Spring Crude的预测结果,即VentoryIds(列表 我想执行如下操作: