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

更新使用timeuuid作为群集列的行

邬英武
2023-03-14

我想做的是,根据timeuuid 对其进行更新。

示例:

UPDATE table SET is_used = true WHERE key1 = 'value' AND created_at < timeuuid('2016-02-03') IF is_used != true;

但是得到

InvalidRequest: code=2200 [Invalid query] message="Invalid operator < for PRIMARY KEY part created_at

我使用的是cassandra Version2.2,模式如下:

CREATE TABLE book (
created_at timeuuid,
book_type varchar,
book_title varchar
PRIMARY KEY ((book_type), created_at)) WITH CLUSTERING ORDER BY (book created_at DESC);

共有1个答案

萧宣
2023-03-14

不幸的是,即使在C*3.5中,如果集群列被限制在一个范围内,您似乎也不能进行更新。

据我所知,在执行更新时,您必须指定整个主键,它不能应用于一系列数据。

无论如何,在执行条件更新时,您可以先执行选择以标识要更改的候选行,然后在批处理中执行更新(因为它们都应用于同一个分区,这是可以的)。

 类似资料:
  • SyntaxException:第1:34行在输入'(')处没有可行的替代方案(UPDATE mytable SET mycolumn=cast 我看到了关于cast函数的文档,对于任何其他类型,都没有在输出类型下列出。 https://docs.datastax.com/en/dse/5.1/cql/cql/cql_reference/refcqlfunction.html#refcqlfunc

  • 假设我有一个部署网。yaml或PVC。亚马尔。我用一些值更新yaml文件。我该怎么办?再次申请?很抱歉,我搜索并浏览了文档,发现了滚动更新和记录,我相信这对我来说是进一步的学习曲线。 对文件所做的更改 我在没有rbac的情况下创建了efs provisioner,我相信pvc因此处于待定状态。因此,尝试更新YAML以适应变化。

  • 我有两个MariaDB Galera群集(PROD(服务器A、B和C)和DR(服务器1、2和3)。我有从PROD群集的主组件节点(服务器A)到DR群集的主组件节点(服务器1)的标准复制(主从)配置。每个群集都可以正常地独立于其他群集运行(也就是说,如果对一个节点进行更改,则群集中的所有节点立即复制更改)。 这种配置的目的是允许我将中继日志在从机上的应用延迟一段预定的时间。不幸的是,Mariadb1

  • 我需要安装一个JAR文件作为库,同时设置数据库群集作为Azure发布管道的一部分。到目前为止,我已经完成了以下工作- 使用Azure CLI任务创建群集定义 使用curl命令将JAR文件从Maven仓库下载到管道代理文件夹 在管道代理上设置数据库CLI 使用将JAR文件从本地(管道代理)目录复制到dbfs:/FileStore/jars文件夹 我正在尝试创建一个集群范围的init脚本(bash)脚

  • 我们在几个应用程序节点上聚集了Quartz scheduler runner。应用程序节点需要更新,出于高可用性的原因,更新以滚动更新的方式进行。