更新为空集

时间:2018-03-05 09:43:12

标签: cassandra cql cassandra-3.0

我刚刚为我的表创建了一个新列

alter table user add (questions set<timeuuid>);

现在表格看起来像

user (
    google_id text PRIMARY KEY,
    date_of_birth timestamp,
    display_name text,
    joined timestamp,
    last_seen timestamp,
    points int,
    questions set<timeuuid>
)

然后我尝试通过执行

将所有这些空值更新为空集
update user set questions = {} where google_id = ?;
每个谷歌ID

但是它们仍然是空的。

如何用空集填充该列?

2 个答案:

答案 0 :(得分:0)

  

集合,列表或地图需要至少包含一个元素,因为   空集,列表或地图存储为空集。

source

此外,如果您使用的是客户端(例如java),this可能会有所帮助。

答案 1 :(得分:0)

我已经知道那里不是空集或者列表等等。

这些在null显示为cqlsh

但是,您仍然可以向它们添加元素,例如

> select * from id_set;
 set_id                | set_content
-----------------------+---------------------------------
 104649882895086167215 | null
 105781005288147046623 | null

> update id_set set set_content = set_content + {'apple','orange'} where set_id = '105781005288147046623';
 set_id                | set_content
-----------------------+---------------------------------
 104649882895086167215 | null
 105781005288147046623 | { 'apple', 'orange' }

因此即使显示为null,您也可以将其视为已包含空集。