在Cassandra中删除记录后,如何重新插入带有计数器列的记录?
我在Cassandra中创建了一个带有计数器列的表,如下所示:在Cassandra中删除记录后,如何重新插入带有计数器列的记录?,cassandra,counter,Cassandra,Counter,我在Cassandra中创建了一个带有计数器列的表,如下所示: create table test_count( pk int, count counter, primary key (pk) ); 然后我更新了一些记录,比如: update test_count set count = count + 1 where pk = 1; 然后我想将计数重置为0,但cql中没有重置命令,因此我删除了记录: delete from test_count where pk =
create table test_count(
pk int,
count counter,
primary key (pk)
);
然后我更新了一些记录,比如:
update test_count set count = count + 1 where pk = 1;
然后我想将计数重置为0,但cql中没有重置命令,因此我删除了记录:
delete from test_count where pk = 1;
然后我重新执行更新CQL,但是当我从test\u count
中选择*时,没有pk=1
的记录,所以这是Cassandra的错误吗?删除带有计数器列的记录时,它会永远消失吗?如何将计数列重置为0?如何重新插入带有计数器列的记录
从测试计数中删除,其中pk=1;这里的查询意味着您正在删除pk=1的所有记录。这就是为什么您的记录被全部删除。如果您想将计数重置为0,可以尝试设置计数=0。谢谢,但在cassandra中,您只能写入set count=count+/-*,不允许设置计数=0,而且cassandra不允许您插入带有计数器列的记录,您只需更新,这就是为什么我在删除后使用update而不是insert。在我运行delete cql之前,如果记录不存在,update将插入记录,但在我运行delete之后情况发生了变化。一个选项是,您可以从选择中减去计数,例如,如果您收到的计数为5,则执行类似于此更新测试的操作\u count Set count=count-5,其中pk=1;这将有帮助,甚至感谢,但我有很多记录要重置,查询它们都不好,我只想重新计算当天的计数,所以必须有相同的行键…似乎我应该放弃使用计数器列。