Вставка жестко запрограммированного UUID через CQLsh (Cassandra)

Хотел бы заполнить некоторые статические тестовые данные с помощью сценария CQLsh.

Это не работает: (device_id - UUID)

insert into devices (device_id, geohash,name, external_identifier, measures, tags) 
values ('c37d661d-7e61-49ea-96a5-68c34e83db3a','9q9p3yyrn1', 'Acme1', '936', {'aparPower','actPower','actEnergy'},{'make':'Acme'});

Неверный запрос: недопустимая константа STRING (c37d661d-7e61-49ea-96a5-68c34e83db3a) для device_id типа uuid

Кажется, я не могу найти какую-либо функцию CQL для преобразования в правильный тип. Нужно ли мне делать это из скрипта Python?

Спасибо Крис


person Chris H    schedule 27.09.2013    source источник
comment
Вы должны принять ответ, поскольку он определенно решит вашу проблему (подумайте о благодарственной записке)   -  person Bruce    schedule 08.10.2013


Ответы (2)


Вы не должны заключать UUID в кавычки, чтобы он не интерпретировался как строка, т.е.

insert into devices (device_id, geohash,name, external_identifier, measures, tags) 
 values 
(c37d661d-7e61-49ea-96a5-68c34e83db3a,'9q9p3yyrn1', 'Acme1', '936', {'aparPower','actPower','actEnergy'},{'make':'Acme'});
person Richard    schedule 27.09.2013
comment
есть ли возможность вставить вывод функции uuid () в текстовое поле? например вставить в устройства (....) значения (cast (uuid () как текст), '9q9p3yyrn1', ...) - person Peter; 15.02.2018

Альтернативный вариант: используйте функцию uuid(). Я тестировал это в DevCenter 1.6.0.

insert into CHANGE_LOG (someid, modifieddatetime, snum, gnum, source) 
values ( uuid() , '2000-12-12 08:00:00', '21A', '', 'system');
person harish    schedule 28.09.2016
comment
Это плохой ответ, потому что uuid() не является константой, поскольку OP запрашивал - person sdgfsdh; 17.03.2021