首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在cassandra-cli中插入数据

无法在cassandra-cli中插入数据
EN

Stack Overflow用户
提问于 2013-06-03 19:07:41
回答 1查看 1.2K关注 0票数 0

获取

代码语言:javascript
复制
 cassandra  error: cannot parse uuid as hex bytes` 

java.sql.SQLSyntaxErrorException: cannot parse '8768c481-a118-48b7-aed2-2903b917d045' as hex bytes
    at org.apache.cassandra.cql.jdbc.CassandraPreparedStatement.doExecute(CassandraPreparedStatement.java:155)
    at org.apache.cassandra.cql.jdbc.CassandraPreparedStatement.execute(CassandraPreparedStatement.java:191)
    at CassClass.main(CassClass.java:55)

模式:

代码语言:javascript
复制
{
  column_name: key, 
  validation_class: UTF8Type, 
  index_type: KEYS
}  where key is UUID generated 
as UUID key = UUIDGenerator.getInstance().generateRandomBasedUUID();

CLI命令:

代码语言:javascript
复制
// Created column family with:
create column family newdata with comparator = UTF8Type;

// Then, updated the column family newdata with:
column_metadata =[{column_name: key, validation_class: UTF8Type, index_type: KEYS}]; 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-03 20:50:33

如果使用的是CQL,最好也使用CQL创建柱族。您似乎发现了一个bug,因为生成的CQL模式是无效的(有两列称为key):

代码语言:javascript
复制
CREATE TABLE newdata (
  key blob PRIMARY KEY,
  key text
);

但是,如果您只希望索引一个字段,则可能需要以下架构:

代码语言:javascript
复制
CREATE TABLE newdata (
  key uuid PRIMARY KEY
);

在这里,主键的类型是UUID,因此将检查您的键是否为有效的UUID。然后,您可以使用以下命令插入:

代码语言:javascript
复制
INSERT INTO newdata (key) VALUES (8768c481-a118-48b7-aed2-2903b917d045);

然后,您可以执行如下查找:

代码语言:javascript
复制
SELECT * FROM newdata1 where key = 8768c481-a118-48b7-aed2-2903b917d045;

它将告诉您UUID是否存在。您可以稍后添加其他列,并使用上面的SELECT查询检索它们。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16895307

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档