Cassandra无法更新列表(uuid)列类型,但其他列可以更新。这种情况发生在我们首先在Python中插入然后更新但是如果我们在更新查询之前放入睡眠然后更新查询能够更新列表(uuid)柱。 可能的原因是什么?
更新查询很简单:
update a set tids = [d181cf28-1e60-4120-92c4-902dfec88a4c] where cid=d181cf28-1e60-4120-92c4-902dfec88a4a and did=e3e8ac10-47b4-48b6-9b72-302a1d98456d and cname='m_2017' and vn=0 IF EXISTS
答案 0 :(得分:2)
最后,我在Cassandra文档中找到了答案:
https://docs.datastax.com/en/cassandra/3.0/cassandra/dml/dmlLtwtTransactions.html
在我的场景中,交易顺序是
删除(如果存在则不存在) - >插入(如果不存在则不包含) - >更新(如果存在)。
在这个序列中,上次更新是轻量级事务。所以如果我们使整个序列轻量级然后它解决了我的问题。其他明智的一些时间这个序列工作正常有时它无法更新行。