首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用timeuuid作为群集列更新行

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

Stack Overflow用户
提问于 2016-06-02 14:05:46
回答 1查看 330关注 0票数 1

我有一个表,其中一个字符串作为键,一个timeuuid作为集群列。

我想做的是,基于timeuuid < now()对其进行更新。

示例:

代码语言:javascript
复制
UPDATE table SET is_used = true WHERE key1 = 'value' AND created_at < timeuuid('2016-02-03') IF is_used != true;

但得到了

代码语言:javascript
复制
InvalidRequest: code=2200 [Invalid query] message="Invalid operator < for PRIMARY KEY part created_at

有什么解决办法或解决办法吗?为什么在这种情况下集群列被认为是主键?

万事如意

- Update1:-

我使用的是cassandra版本2.2,模式如下:

代码语言:javascript
复制
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);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-02 15:20:21

不幸的是,即使在C* 3.5中,在集群列受到范围限制的情况下,您也无法进行更新。

我可以告诉您,在进行更新时,必须指定整个主键,因此不能将其应用于一系列数据。

在执行条件更新时,您可以首先执行一个SELECT来标识要更改的候选行,然后在一个批处理中进行更新(因为它们都适用于同一个分区--这是可以的)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37594217

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档