将数据插入Cassandra UDT的正确方法是什么?

dzjeubhm  于 2022-11-05  发布在  Cassandra
关注(0)|答案(1)|浏览(197)

这是我创建的类型,

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

这是table

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?

h7appiyu

h7appiyu1#

创建表似乎没问题
要将表插入到urs.abc,请使用此

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

您缺少字段名称destinations

相关问题