Cassandra:在cassandra表中插入列

时间:2016-03-19 19:54:33

标签: cassandra datastax datastax-java-driver

我正在尝试在Cassandra表中插入新列。 列名 - feedback_map 列类型 - 文本地图,feedback_map

尝试执行此声明。

      ALTER TABLE my_table ADD feedback_map map<text, frozen<feedback_details>>;

但在feedback_details上遇到未知类型错误 我对卡桑德拉很新。

我有自定义feedback_details用户类型,有两个字段 -

       @Field(name = "field_mappings")
       private Map<String, String> fieldMappings;


       @Field(name = "field_defaults")
       private Map<String, String> fieldDefaults;

不,我还没定义呢?我需要先将此用户类型添加到我的表中吗?

1 个答案:

答案 0 :(得分:3)

首先,确保您的用户定义类型(UDT)存在。如果没有,您需要创建它:

CREATE TYPE feedback_details (
    field_mappings MAP<TEXT, TEXT>,
    field_defaults MAP<TEXT, TEXT>);

然后你就可以将它作为一个列添加到你的桌面上(如上所示):

ALTER TABLE my_table ADD feedback_map map<text, frozen<feedback_details>>;