4

Cassandra CQL 支持哪里UPDATE IF [condition][condition] 是不等式?

我查看了语言参考,似乎 CQL 不能通过其语法支持不等式。我使用了这里的语言参考:https ://cassandra.apache.org/doc/cql3/CQL.html#updateStmt

令人困惑的是,使用 C# 驱动程序或 CQLSH 查询成功执行,但是从 Datasax DevCenter 执行相同操作时出现错误。

我正在使用类似于以下查询的查询:

UPDATE product
SET edit_date = [new_value]
WHERE customer_id = '4' AND code = 'AMZ-ISMDB' 
IF edit_date < [new_value]

结果如下:

  • Datasax DevCenter 在尝试执行脚本片段时引发错误。我得到的错误是抱怨脚本的 UPDATE IF 部分中的不等式。

    当前脚本中存在一个语法错误(请参阅下面的详细信息)。请修复并重试。第 29 行:输入 '<' 没有可行的替代方案

  • 如果我将 CLINQ 与 Datasax C# 驱动程序一起使用,则会按上述方式生成查询,并且在执行时,如果新的 edit_date 在现有的 edit_date 之后(这是预期的行为),则更新将保持不变。

  • 使用 CQLSH 查询成功运行并保持更新

4

2 回答 2

1

该问题很可能是 DevCenter 尚未更新以支持最新语法。

添加了不等式条件: CASSANDRA-6839

看起来他们在添加文档时错过了更新文档。我打开CASSANDRA-10752来解决这个问题。

于 2015-11-22T20:17:28.397 回答
0

此问题已在 DevCenter 版本 1.6.0 中修复。

于 2016-08-22T15:04:39.177 回答