2013-10-29 100 views
0

我有一个卡桑德拉表:卡桑德拉CQL更新列

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

柱C2有一个像 'A', 'B', 'C' 的价值观,... 现在我想改变C2的值到所有行的'a'。 (假设我有一万行) 在卡桑德拉做这件事的最好方法是什么?

在SQL中,我可以简单地做

UPDATE test SET c2 = 'b'; 

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

回答

0

在Cassandra中没有这样做的CQL。您可以通过检索所有的C1键做到这一点:

SELECT c1 from test; 

然后编写遍历和做

UPDATE test SET c2 = 'b' WHERE c1 = <c1>; 

对于每个C1返回的脚本。

-1

Cassandra不是SQL数据库。我建议阅读低级Cassandra API和体系结构的概述。它会给出关于Cassandra能做什么,不能做什么,擅长什么,不擅长什么的好主意。此批量更新示例需要对表(列族)中每行的此特定列进行独立更新,并且这些更新中的每一个都是单独的写入操作。