СОЗДАЙТЕ KEYSPACE, ЕСЛИ НЕ СУЩЕСТВУЕТ В CQL

Я использую ниже синтаксис 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)

Пожалуйста помоги мне с этим? что не так с синтаксисом?

2 ответа

Это, кажется, правильный синтаксис (ref: docs). Я только что сам попробовал на Cassandra 2.0.7.

Опция "если не существует" является частью CQL3, который впервые появился в Cassandra 1.2. Я бы дважды проверил вашу версию Cassandra, чтобы увидеть, доступна ли эта опция.

Если вы столкнулись с той же самой SyntaxError (И вы используете Eclipse), убедитесь, что сначала ваша Eclipse IDE не экспортируется с кодировкой символов Cp1252, но с UTF-8 (или любой другой кодировкой, соответствующей кодировке вашего кольца Кассандры (обычно UTF-8).

Другие вопросы по тегам