来自不同表的cassandra if子句条件

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

只有当cassandra中的库存表中存在一些数量时,我才必须更新/插入购物车表中的数据,这需要进行原子操作,因为库存表正在频繁更新,我尝试使用轻量级事务,如下所示

update shopping_cart
set 
quantity=1
where
item='item1'
if
 (select quantity from inventory where item='item1') = 2;

但我犯了个错误

mismatch input '(' expecting K_NOT

可能轻量级事务不是最好的方法,我也认为if子句不支持来自cassandra中不同表的查询。
那么,在不损害原子性的前提下,在Cassandra实现上述操作的最佳方式是什么呢。

b4wnujal

b4wnujal1#

上述类型的查询是不可能的-我可以想到两种选择,
在shopping\u cart表中保留数量当您要更新数量时,请使用batch语句在两个表中更新。
在应用程序本身中处理这个问题会带来更多的痛苦。

相关问题