2017-09-18 15 views
0

Voici le type que j'ai créé,valeur Insertion d'un UDT cassandra

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

Et voici la table,

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

Lorsque je tente d'insérer des valeurs de cqlsh,

essayez 1:

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

essayez 2:

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

essayer 3:

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

Je reçois l'erreur ci-dessous,

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

Quelqu'un peut-il s'il vous plaît laissez-moi savoir la bonne façon d'ajouter de la valeur à mon UDT?

Répondre

1

Table création semble bien

Pour insérer à la table pour urs.abc utiliser cette

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

Il vous manque le nom du champ destinations.

+0

Merci pour la réponse. Ça a marché. –