Couchbase Java SDK Проблема N1QL ОБНОВЛЕНИЕ - PullRequest
0 голосов
/ 21 марта 2019

Я экспериментирую с Java и Couchbase 6.0 Community Edition, используя Java 2.7 SDK.

Я пытаюсь выполнить простой запрос на обновление из моего Java-приложения, Couchbase Java 2.7 SDK:

String query ="UPDATE admin SET FIELDNAME='TEST'"
N1qlParams params = N1qlParams.build().adhoc(false);
N1qlQuery nquery = N1qlQuery.simple(query, params);
N1qlQueryResult nqr= this.rbucket.query(nquery);

И я получаю следующее исключение (наиболее значимая часть):

com.couchbase.client.core.CouchbaseException: N1qlQuery Error - {"msg":"syntax error - at UPDATE","code":3000}

Фактическое исключение начинается так:

Exception in thread "main" com.couchbase.client.core.CouchbaseException: Error while preparing plan

Конечно, этот запрос прекрасно работает через веб-интерфейс Couchbase, и я могу обновиться без проблем.

Только для информации: я пытался экранировать одинарные кавычки, даже пытался установить столбец равным самому себе - та же ошибка.

Выборочные запросы выполняются аналогичным образом без каких-либо проблем.

1 Ответ

0 голосов
/ 21 марта 2019

«admin» не является хорошим именем для сегмента, так как обычно оно связано с некоторыми зарезервированными ключевыми словами, если вы все еще хотите использовать это имя, вы должны использовать обратные галочки вокруг него:

update `admin` set FIELDNAME = 'TEST'

Также может потребоваться создать первичный индекс, если у вас его еще нет.

...