如果 CQL 中不存在则创建键空间

San*_*jiv 5 cql3 cassandra-jdbc

仅当键空间不存在时,我才使用以下 CQL 语法创建键空间:

CREATE KEYSPACE IF NOT EXISTS Test WITH replication 
                = {'class':'SimpleStrategy', 'replication_factor':1};
Run Code Online (Sandbox Code Playgroud)

但它给出了错误:

Exception in thread "main" com.datastax.driver.core.exceptions.SyntaxError: line 1:23 extraneous input 'EXISTS' expecting '='
at com.datastax.driver.core.exceptions.SyntaxError.copy(SyntaxError.java:35)
at com.datastax.driver.core.DefaultResultSetFuture.extractCauseFromExecutionException(DefaultResultSetFuture.java:256)
at com.datastax.driver.core.DefaultResultSetFuture.getUninterruptibly(DefaultResultSetFuture.java:172)
at com.datastax.driver.core.SessionManager.execute(SessionManager.java:91)
at com.datastax.driver.core.SessionManager.execute(SessionManager.java:83)
Run Code Online (Sandbox Code Playgroud)

请帮我解决这个问题?语法有什么问题吗?

Bri*_*anC 2

这似乎是正确的语法(参考:文档)。我刚刚在 Cassandra 2.0.7 上亲自尝试过。

“如果不存在”选项是 CQL3 的一部分,它首先随 Cassandra 1.2 一起提供。我会仔细检查您的 Cassandra 版本,看看此选项是否可用。