Cassandra If条款来自不同的表格

问题描述 投票:0回答:1

我必须在shopping_cart表中更新/插入数据,只有当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中实现上述操作的最佳方法是什么。

cassandra atomicity
1个回答
1
投票

以上类型的查询是不可能的 - 我能想到两个选项,

  1. 如果要更新数量,请在shopping_cart表中保留数量,并使用批处理语句在两个表中进行更新。
  2. 在应用程序本身处理这个问题,但会有更多的痛苦。
© www.soinside.com 2019 - 2024. All rights reserved.