Вставка жестко запрограммированного 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?
Спасибо Крис
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'});
Альтернатива: используйте функцию uuid(). Я проверил это в DevCenter 1.6.0.
вставить в значения CHANGE_LOG (cjpid, updateddatetime, seatnumber, gatenumber, source) значения ( uuid(), '2000-12-12 08:00:00', '21A', '', 'MARS');