2013-10-29 97 views
0

我有一個卡桑德拉表:卡桑德拉CQL更新列

CREATE TABLE test (
    c1 text primary key, 
    c2 text 
); 

柱C2有一個像 'A', 'B', 'C' 的價值觀,... 現在我想改變C2的值到所有行的'a'。 (假設我有一萬行) 在卡桑德拉做這件事的最好方法是什麼?

在SQL中,我可以簡單地做

UPDATE test SET c2 = 'b'; 

但卡桑德拉不允許這樣做。

回答

0

在Cassandra中沒有這樣做的CQL。您可以通過檢索所有的C1鍵做到這一點:

SELECT c1 from test; 

然後編寫遍歷和做

UPDATE test SET c2 = 'b' WHERE c1 = <c1>; 

對於每個C1返回的腳本。

-1

Cassandra不是SQL數據庫。我建議閱讀低級Cassandra API和體系結構的概述。它會給出關於Cassandra能做什麼,不能做什麼,擅長什麼,不擅長什麼的好主意。此批量更新示例需要對錶(列族)中每行的此特定列進行獨立更新,並且這些更新中的每一個都是單獨的寫入操作。