Cassandra CQL - 更新命令以不创建新行

mes*_*esh 5 cql cassandra

如果行键'row1'不存在,有没有办法阻止CQL命令Update创建新行?

UPDATE columnfamily SET data = 'test data' WHERE key = 'row1';
Run Code Online (Sandbox Code Playgroud)

psa*_*ord 7

更新2015-04-10:

从Cassandra 2.0开始,您可以使用轻量级事务来完成此任务.请注意,虽然它们被称为"轻量级",但这些查询需要在Cassandra集群上完成更多工作.

感谢@BSB的更新.

Pre 2.0回答:

与SQL不同,在CQL中Updateinsert语义相同.您必须先读取以确定行的存在.

  • C*中有轻量级事务的概念.你可以做"UPDATE ... IF EXISTS"或"IF X = Y" (3认同)