我有一张Cassandra表:
CREATE TABLE test (
c1 text primary key,
c2 text
);
列c2的值为'a','b','c',... 现在我想将所有行的c2值更改为'a'。 (假设我有一万行) 在Cassandra做这个的最好方法是什么?
在SQL中,我可以简单地执行
UPDATE test SET c2 = 'b';
但是卡桑德拉不允许这样做。
答案 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可以做什么,不能做什么,擅长什么以及什么不擅长。此批量更新示例需要在表(列系列)的每一行中对此特定列进行独立更新,并且每个更新都是单独的写操作。