【问题标题】:Inserting a value on a frozen set in cassandra 3在cassandra 3中的冻结集上插入一个值
【发布时间】:2018-05-28 19:08:24
【问题描述】:

我目前正在开发一个 Cassandra 3 数据库,其中一个表的列定义如下:

column_name map<int, frozen <set<int>>>

当我必须更改给定映射键 x 的完整集合的值时,我只需要这样做:

UPDATE keyspace.table SET column_name[x] = {1,2,3,4,5} WHERE ...

问题是我需要在给定键的集合上插入一个值。我试过这个:

UPDATE keyspace.table SET column_name[x] = column_name[x] + {1} WHERE ...

但它会返回:

SyntaxException: line 1:41 在输入 '[' (... SET column_name[x] = [column_name][...) 处没有可行的替代方案

我做错了什么?有谁知道如何按我需要的方式插入数据?

【问题讨论】:

    标签: cassandra bigdata cqlsh cassandra-3.0


    【解决方案1】:

    由于map的值被冻结,不能这样使用update。

    冻结值将多个组件序列化为单个值。非冻结类型允许更新单个字段。 Cassandra 将冻结类型的值视为 blob。必须覆盖整个值。

    你必须阅读完整的地图获取键值追加新项目,然后重新插入

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-29
    • 1970-01-01
    • 2018-07-15
    • 2016-09-15
    • 2019-04-17
    • 2015-10-24
    • 1970-01-01
    • 2016-05-30
    相关资源
    最近更新 更多