CQL3 (Cassandra) upsert 增加一个计数器

Posted

技术标签:

【中文标题】CQL3 (Cassandra) upsert 增加一个计数器【英文标题】:CQL3 (Cassandra) upsert increasing a counter 【发布时间】:2015-10-05 00:46:06 【问题描述】:

我有以下 CQL3 表。

CREATE TABLE UserKarma (
  user_id uuid, 
  sub_type text, 
  karma counter, 
  PRIMARY KEY(user_id, sub_type)
) WITH COMPACT STORAGE

如何插入或更新(单个查询)值并增加计数器?如果该条目不存在,由于计数器默认为0,则使用此更新插入创建的所有新记录都应为1

【问题讨论】:

【参考方案1】:

我想通了。

UPDATE UserKarma SET karma = karma + 1 where user_id = d9d9354a-32e9-46d7-a56c61e21b486ae3 and sub_type = 'test';

【讨论】:

以上是关于CQL3 (Cassandra) upsert 增加一个计数器的主要内容,如果未能解决你的问题,请参考以下文章

如果不鼓励在 cassandra 1.2/Cql3 中使用动态列,那么它在功能上比 Mysql 好多少?

工具Cassandra 2.1正式发布,引入CQL3元组和用户定义类型

如何从零开始理解 CQL3 表模型?

使用 Cassandra (CQL 3) 实现类似表的堆栈

upsert 上的 Cassandra 架构

cassandra在服务端像leveldb一样进行插入初试成功