将值插入cassandra UDT

时间:2017-09-18 16:20:44

标签: insert cql cqlsh user-defined-types cassandra-3.0

这是我创建的类型,

CREATE TYPE urs.dest (
destinations frozen<list<text>>);

这是表格,

CREATE TABLE urs.abc (
id int,
locations map<text, frozen<dest>>,
PRIMARY KEY(id));

当我尝试从cqlsh插入值时,

尝试1:

insert into urs.abc (id, locations ) values (1, {'coffee': { 'abcd', 'efgh'}});

尝试2:

insert into urs.abc (id, locations ) values (1, {'coffee': ['abcd', 'efgh']});

尝试3:

insert into urs.abc (id) values (1);
update urs.abc set locations = locations + {'coffee': {'abcd','qwer'}} where id=1;

我收到以下错误,

Error from server: code=2200 [Invalid query] message="Invalid map literal for locations: value {'abcd', 'qwer'} is not of type frozen<dest>"

任何人都可以告诉我为UDT增值的正确方法吗?

1 个答案:

答案 0 :(得分:2)

表创建似乎很好

要将表格插入urs.abc,请使用此

insert into urs.abc (id, locations ) values (1, {'coffee':{ destinations: ['abcd', 'efgh']}});

您缺少字段名称destinations