通过CQLsh插入硬编码的UUID(Cassandra)

时间:2013-09-27 16:21:12

标签: cassandra uuid cql cqlsh

希望通过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)适用于uuid类型的device_id

我似乎无法找到任何CQL函数来转换为正确的类型。我是否需要从python脚本中执行此操作?

谢谢, 克里斯

2 个答案:

答案 0 :(得分:84)

你不应该在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'});

答案 1 :(得分:0)

Alternate:使用uuid()函数。我在DevCenter 1.6.0中对此进行了测试。

插入CHANGE_LOG(cjpid,modifieddatetime,seatnumber,gatenumber,source) 值(uuid(),'2000-12-12 08:00:00','21A','','MARS');