【问题标题】:CREATE KEYSPACE IF NOT EXISTS in CQL如果 CQL 中不存在,则创建键空间
【发布时间】:2014-05-06 17:39:23
【问题描述】:

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

CREATE KEYSPACE IF NOT EXISTS Test WITH replication 
                = {'class':'SimpleStrategy', 'replication_factor':1};

但它给出了错误:

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)

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

【问题讨论】:

  • 你的语法是正确的。我刚刚在我的本地 Cassandra 服务器中逐字使用了您的命令。工作正常。

标签: cql3 cassandra-jdbc


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    如果您遇到同样的 SyntaxError(并且您使用 Eclipse),请首先确保您的 Eclipse IDE 不使用 Cp1252 字符编码而是 UTF-8(或任何其他与您的 Cassandra 环匹配的编码(通常是 UTF-8)导出)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-04
      • 1970-01-01
      • 2015-02-24
      • 2013-05-26
      • 1970-01-01
      • 1970-01-01
      • 2014-03-09
      • 2021-10-03
      相关资源
      最近更新 更多