在冻结字段Cassandra中插入新值

时间:2018-01-14 13:06:08

标签: cassandra

表格方案:

CREATE TABLE users (
    user_id uuid,
    date timestamp,
    components frozen <map <text, map<text, text>>>,
PRIMARY KEY (user_id));

如您所见components是冻结字段,我需要在其中插入新值。

我尝试了这个查询:

UPDATE kp.users SET components = components + {'new': {'key':'value'}} WHERE user_id='edf29208-adc5-4dc0-b6c4-b53b28cab95c';

但得到了一个错误:

Invalid operation (components = components + {'new': {'key': 'value'}}) for frozen collection column components

如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

因为该字段已冻结,您无法对其进行修改 - 您需要将其整体更新 - 即使它是地图it is one blob of data。如果你想更新它,你需要在你身边实现逻辑,但要注意竞争条件,比如,有人会同时更新相同的值。