Cassandra 卡桑德拉CQL更新列

Cassandra 卡桑德拉CQL更新列,cassandra,cql3,Cassandra,Cql3,我有一张卡桑德拉桌子: CREATE TABLE test ( c1 text primary key, c2 text ); 列c2的值类似于“a”、“b”、“c”。。。 现在,我想将所有行的c2值更改为“a”。假设我有一万行 在卡桑德拉做这件事最好的方法是什么 在SQL中,我可以简单地执行以下操作 UPDATE test SET c2 = 'b'; 但是卡桑德拉不允许这样做。在卡桑德拉没有CQL可以这样做。您可以通过检索所有c1密钥来执行此操作: SELECT c1 fr

我有一张卡桑德拉桌子:

CREATE TABLE test (
    c1 text primary key,
    c2 text
);
列c2的值类似于“a”、“b”、“c”。。。 现在,我想将所有行的c2值更改为“a”。假设我有一万行 在卡桑德拉做这件事最好的方法是什么

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

UPDATE test SET c2 = 'b';

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

在卡桑德拉没有CQL可以这样做。您可以通过检索所有c1密钥来执行此操作:

SELECT c1 from test;
然后编写一个脚本,循环并执行

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

对于返回的每个c1。Cassandra不是SQL数据库。我建议阅读底层CassandraAPI和体系结构的概述。它将给出卡桑德拉能做什么,不能做什么,擅长什么和不擅长什么的好主意。此批量更新示例要求在表列族的每一行中独立更新此特定列,并且每个更新都是一个单独的写入操作