我正在尝试在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;
不,我还没定义呢?我需要先将此用户类型添加到我的表中吗?
答案 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>>;