1

我正在使用 cassandra 1.1.1。但是,每当我使用复合键创建列族时,都会出现如下错误,

java.sql.SQLSyntaxErrorException: line 1:117 mismatched input ')' expecting EOF 
at org.apache.cassandra.cql.jdbc.CassandraStatement.
                                          doExecute(CassandraStatement.java:180) 
at org.apache.cassandra.cql.jdbc.CassandraStatement.executeUpdate(
                                                    CassandraStatement.java:237) 
at jdbc.cassandra.JdbcCassandra.main(JdbcCassandra.java:59)

我的查询是CREATE TABLE sblocks (block_id uuid, subblock_id uuid, data blob, PRIMARY KEY (block_id, subblock_id));

有人可以帮我吗?

4

1 回答 1

1

您在问题标题中提到了答案:您的连接可能实际上并未使用 CQL 版本 3。必须明确请求使用版本 3 语法。

最新版本的 JDBC 驱动程序尚不支持请求 CQL 3。不过,如果您不介意使用 JDBC 驱动程序边缘,则“主干”分支中的版本支持。

此提交的更改日志:http ://code.google.com/a/apache-extras.org/p/cassandra-jdbc/source/browse/src/main/java/org/apache/cassandra/cql/jdbc/ CassandraConnection.java?name=trunk解释了如何使用它。

于 2012-06-14T15:17:55.847 回答