我正在使用cassandra 2.2.3並希望使用兩條語句進行批量更新。兩者都使用輕量級事務。用輕量級事務批量更新cassandra
BEGIN BATCH
UPDATE account SET values['balance'] = 11 WHERE id = 1 IF values['balance'] = 10;
UPDATE account SET values['balance'] = 11 WHERE id = 2 IF values['balance'] = 10;
APPLY BATCH;
批返回以下錯誤:
InvalidRequest: code=2200 [Invalid query] message="Batch with conditions cannot span multiple partitions".
我明白,這是不可能做出各種的PK一批因爲分區的where子句中,但爲什麼它是不可能的在同一個PK上進行批處理?問題是IF語句,刪除它們,批處理正在工作。
那麼是否有解決方案來成功執行這樣的批量更新?或者任何解決方法?
編輯: 這是我的架構:
CREATE TABLE booking.account (
id int PRIMARY KEY,
values map<varchar, decimal>,
timestampCreate timestamp,
timestampUpdate timestamp
);
你可以顯示錶格模式嗎? – shutty
我將模式添加到帖子。謝謝 –