我正在使用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));
有些人可以帮助我吗?
答案 0 :(得分:1)
您提到了问题标题中的答案:您的连接可能实际上并未使用CQL版本3.必须明确请求使用版本3语法。
最新版本的JDBC驱动程序尚不支持请求CQL 3.但是,如果您不介意生活在JDBC驱动程序边缘,那么“trunk”分支中的版本确实存在。
此提交的更改日志: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说明了如何使用它。