Cassandra 使用timeuuid作为群集列更新行
我有一个表,它有一个字符串作为键,一个timeuuid作为集群列 我想做的是,基于Cassandra 使用timeuuid作为群集列更新行,cassandra,timeuuid,Cassandra,Timeuuid,我有一个表,它有一个字符串作为键,一个timeuuid作为集群列 我想做的是,基于timeuuid
timeuuid
对其进行更新
例如:
UPDATE table SET is_used = true WHERE key1 = 'value' AND created_at < timeuuid('2016-02-03') IF is_used != true;
不幸的是,即使在C*3.5中,如果集群列限制在某个范围内,您也无法进行更新 从我可以告诉您的情况来看,在执行更新时必须指定整个主键,它不能应用于一系列数据
不管怎么说,在进行条件更新时,您可以先执行
选择
,以确定要更改的候选行,然后成批执行更新(因为它们都应用于同一分区,这是可以的)。您使用的是什么版本的cassandra?另外,您可以共享您的表模式吗?在cassandra 3.x中,这可能是可能的(集群键上的范围关系),但不能确定
InvalidRequest: code=2200 [Invalid query] message="Invalid operator < for PRIMARY KEY part created_at
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);