来自不同表的Cassandra If子句条件

来自不同表的Cassandra If子句条件,cassandra,atomicity,Cassandra,Atomicity,我必须更新/插入购物车表中的数据,只有当cassandra中的库存表中存在一些数量时,这需要进行原子操作,因为invetory表正在频繁更新,我尝试使用一个轻量级事务,如下所示 update shopping_cart set quantity=1 where item='item1' if (select quantity from inventory where item='item1') = 2; 但是我犯了个错误 mismatch input '(' expecting K_NOT

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

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中实现上述操作而又不影响原子性的最佳方法是什么呢?

上述类型的查询是不可能的-我可以想到两种选择

  • 如果要更新数量,请在购物车表中保留数量。在两个表中使用批处理语句进行更新
  • 在应用程序本身中处理这个问题,但会带来更多的痛苦