UPDATE IF [condition]
中[条件]是不等式,由Cassandra CQL支持吗?
我看了一下语言参考,似乎CQL不应该通过语法来支持不平等。我使用了这里的语言参考:https://cassandra.apache.org/doc/cql3/CQL.html#updateStmt
令人困惑的是,使用C#驱动程序或CQLSH可以成功执行查询,但当从Dataax-DevCenter执行同样的操作时,我会出错。
我使用的查询类似于下面的查询:
UPDATE product
SET edit_date = [new_value]
WHERE customer_id = '4' AND code = 'AMZ-ISMDB'
IF edit_date < [new_value]
结果如下:
Dataax-DevCenter在尝试执行脚本片段时抛出错误。我得到的错误是抱怨脚本的UPDATE IF部分中的不平等。
当前脚本中有一个语法错误(请参阅下面的详细信息)。请修复它,然后重试。第29行:在输入'<'处没有可行的替代方案
如果我将CLINQ与Datamax C#驱动程序一起使用,则如上所述生成查询,并且在执行时,如果新的edit_date在现有的edit_data之后(这是预期行为),则更新将持久化。
使用CQLSH,查询成功运行,更新持久化
问题很可能是DevCenter尚未更新以支持最新语法。
增加了不平等条件:CASSANDRA-6839
添加文档时,他们似乎错过了更新文档。我打开CASSANDRA-10752来修复它。
此问题已在DevCenter 1.6.0版本中修复。