只有当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实现上述操作的最佳方式是什么呢。
1条答案
按热度按时间b4wnujal1#
上述类型的查询是不可能的-我可以想到两种选择,
在shopping\u cart表中保留数量当您要更新数量时,请使用batch语句在两个表中更新。
在应用程序本身中处理这个问题会带来更多的痛苦。