【问题标题】:Update existing rows, while altering Cassandra table更新现有行,同时更改 Cassandra 表
【发布时间】:2017-10-18 01:59:04
【问题描述】:

我在 Cassandra 中有一些表格,我需要添加带有默认数据的字段。

有没有办法为已经存在的行添加默认值,而不需要手动更新所有数据?

 ALTER TABLE data ADD some_bool bool;  // Make it false for all existing records.

(文档:ALTER TABLE 不更新现有行)

【问题讨论】:

  • 如果您添加新列,现有数据将没有该列的值。因此,如果您获得该列的值,您将获得空值。但是对于布尔类型,你会得到 false 和 int,bigint 你会得到 0,如果你使用的是 Java Driver

标签: cassandra datastax cql datastax-enterprise nosql


【解决方案1】:

当您检索行时,您必须在应用程序级别处理这些问题。 Cassandra 会将数据作为 NULL 返回给客户端,因此一切都取决于您使用的驱动程序和语言。检查驱动程序的文档以了解返回的值是空值还是真实值。他们通常有一个 isNull 方法来执行此类检查。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-04
    • 2017-12-28
    • 1970-01-01
    • 2017-09-15
    • 2016-11-15
    • 1970-01-01
    • 2018-08-30
    相关资源
    最近更新 更多