Cassandra 根据条件更新多行

Vip*_*dte 3 cql cassandra cql3 cassandra-3.0

我想更新 Cassandra 中的多行,如果它们满足具有相同值的条件(将标志更改为 false),并且我的条件字段是我的复合键的一部分。但我不能使用整个组合键。

Aar*_*ron 5

不幸的是,这对于 Cassandra 来说是不可能的。 UPDATEs 和INSERTs 都被视为写操作。并且写操作需要完整的PRIMARY KEY。

考虑这个示例,其中我的分区键为 : username,集群键为transaction_time: PRIMARY KEY (username,transaction_time)。如果我只是尝试UPDATE基于username,则会失败。

cassdba@cqlsh:stackoverflow> UPDATE rest_transactions_by_user
       SET http_result = 200 WHERE username='Aaron';
InvalidRequest: Error from server: code=2200 [Invalid query] 
       message="Some clustering keys are missing: transaction_time"
Run Code Online (Sandbox Code Playgroud)