Кассандра Если оговорка условие из другой таблицы - PullRequest
0 голосов
/ 27 февраля 2019

Мне нужно обновлять / вставлять данные в таблицу shopping_cart только в том случае, если в таблице инвентаризации в Кассандре присутствует какое-то количество, и это должна быть атомарная операция, так как таблица инвентаризации обновляется часто, я пытался использовать легкую транзакциючто-то вроде ниже

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

, но я получаю сообщение об ошибке

mismatch input '(' expecting K_NOT 

, вероятно, облегченная транзакция не лучший способ сделать это, и я думаю, что если предложение не будет поддерживатьзапрос из другой таблицы в Кассандре.

, так как лучше всего выполнить вышеуказанную операцию в Кассандре без ущерба для атомарности.

1 Ответ

0 голосов
/ 27 февраля 2019

Указанный выше тип запроса невозможен - я могу придумать два варианта:

  1. Сохраняйте количество в таблице shopping_cart также, когда вы хотите обновить количество, используйте оператор пакета для обновления вобе таблицы.
  2. Обработка этого в самом приложении, но будет больше боли.
...