如何将列更新为 cassandra table 中的特定值?

How can i update the column to a particular value in a cassandra table?

嗨,我有一个 cassandra table。我的 table 中有大约 200 条记录。后来我更改了 table 以添加名为 budget 的新列,该列的类型为 boolean 。我想将该列的默认值设置为 true。 cql 应该是什么样的。

我正在尝试以下命令,但没有用

cqlsh:Openmind> update mep_primecastaccount set budget = true ;
SyntaxException: line 1:46 mismatched input ';' expecting K_WHERE

感谢任何帮助 谢谢

不支持任何需要在写入前进行集群范围读取的操作(因为它无法在 Cassandra 设计的规模上运行)。您必须为更新语句提供分区和集群键。如果只有 200 条记录,一个快速 python 脚本或者可以为您完成此操作。执行 SELECT * FROM mep_primecastaccount 并遍历 ResultSet。为每一行发布一个更新。如果您有更多记录,您可能想使用 spark 或 hadoop,但对于像这样的小 table,一个快速脚本就可以做到。

Chris 的回答是正确的 - 没有有效或可靠的方法来修改数据库中每一行的列值。但是对于不并行变化的200行table,其实很容易做到。

但是还有另一种方法也适用于 table 数十亿行:

您可以在客户端代码中处理 "default value" 的概念。 Pre-existing 代码根本没有 "budget" 的值:它既不是真也不是假,而是完全缺失 (a.k.a。"null" ).您的客户端代码可能会在读取缺少 "budget" 值的行时,将其替换为它选择的某个默认值 - 例如,"true"。