0

得到

 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)

架构:

{
  column_name: key, 
  validation_class: UTF8Type, 
  index_type: KEYS
}  where key is UUID generated 
as UUID key = UUIDGenerator.getInstance().generateRandomBasedUUID();

CLI 命令:

// 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}]; 
4

1 回答 1

1

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

CREATE TABLE newdata (
  key blob PRIMARY KEY,
  key text
);

但是,如果您只需要一个被索引的字段,您可能需要以下模式:

CREATE TABLE newdata (
  key uuid PRIMARY KEY
);

在这里,主键是 UUID 类型,因此会检查您的键是否是有效的 UUID。然后您可以插入:

INSERT INTO newdata (key) VALUES (8768c481-a118-48b7-aed2-2903b917d045);

然后你可以进行如下查找:

SELECT * FROM newdata1 where key = 8768c481-a118-48b7-aed2-2903b917d045;

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

于 2013-06-03T12:50:32.860 回答