Cassandra CQL更新列

时间:2013-10-29 14:45:21

标签: cassandra cql3

我有一张Cassandra表:

CREATE TABLE test (
    c1 text primary key,
    c2 text
);

列c2的值为'a','b','c',... 现在我想将所有行的c2值更改为'a'。 (假设我有一万行) 在Cassandra做这个的最好方法是什么?

在SQL中,我可以简单地执行

UPDATE test SET c2 = 'b';

但是卡桑德拉不允许这样做。

2 个答案:

答案 0 :(得分:0)

在Cassandra中没有CQL可以做到这一点。您可以通过检索所有c1键来完成此操作:

SELECT c1 from test;

然后编写一个循环的脚本并执行

UPDATE test SET c2 = 'b' WHERE c1 = <c1>;
每个c1返回

答案 1 :(得分:-1)

Cassandra不是SQL数据库。我建议阅读低级Cassandra API和架构的概述。它将很好地了解Cassandra可以做什么,不能做什么,擅长什么以及什么不擅长。此批量更新示例需要在表(列系列)的每一行中对此特定列进行独立更新,并且每个更新都是单独的写操作。