where和if之间的cassandra cas差异

h9a6wy2h  于 2021-06-10  发布在  Cassandra
关注(0)|答案(1)|浏览(321)

使用文章“使用轻量级事务”中的示例,此类事务的示例如下所示:

UPDATE cycling.cyclist_name
  SET firstname = 'Roxane'
  WHERE id = 4647f6d3-7bd2-4085-8d6c-1229351b5498
  IF firstname = 'Roxxane';

这和替换有什么区别 IFWHERE ,例如:

UPDATE cycling.cyclist_name
  SET firstname = 'Roxane'
  WHERE id = 4647f6d3-7bd2-4085-8d6c-1229351b5498 
  AND firstname = 'Roxxane';

我猜第二个并不是在一个步骤中进行读写,而是首先根据位置进行选择,然后应用更新,而第一个在查询运行时阻止其他进程写入db。

au9on6nz

au9on6nz1#

如果来自两个不同客户端的并发更新,第一个查询将确保一次只应用一个客户端(假设不使用非串行一致性),但是对于第二个更新,这不是真的。看看这个。

相关问题