0

我有一张 Cassandra 桌子:

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

c2 列的值类似于“a”、“b”、“c”……现在我想将所有行的 c2 值更改为“a”。(假设我有一万行)在 Cassandra 中执行此操作的最佳方法是什么?

在 SQL 中,我可以简单地做

UPDATE test SET c2 = 'b';

但卡桑德拉不允许。

4

2 回答 2

0

在 Cassandra 中没有 CQL 可以做到这一点。您可以通过检索所有 c1 密钥来做到这一点:

SELECT c1 from test;

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

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

对于每个返回的 c1。

于 2013-10-29T15:24:28.040 回答
-1

Cassandra 不是 SQL 数据库。我建议阅读底层 Cassandra API 和架构的概述。它将给出关于 Cassandra 可以做什么、不能做什么、擅长什么以及不擅长什么的好主意。此批量更新示例需要在表(列族)的每一行中独立更新此特定列,并且这些更新中的每一个都是单独的写入操作。

于 2013-10-29T16:27:30.610 回答