我有一個卡桑德拉表:卡桑德拉CQL更新列
CREATE TABLE test (
c1 text primary key,
c2 text
);
柱C2有一個像 'A', 'B', 'C' 的價值觀,... 現在我想改變C2的值到所有行的'a'。 (假設我有一萬行) 在卡桑德拉做這件事的最好方法是什麼?
在SQL中,我可以簡單地做
UPDATE test SET c2 = 'b';
但卡桑德拉不允許這樣做。
我有一個卡桑德拉表:卡桑德拉CQL更新列
CREATE TABLE test (
c1 text primary key,
c2 text
);
柱C2有一個像 'A', 'B', 'C' 的價值觀,... 現在我想改變C2的值到所有行的'a'。 (假設我有一萬行) 在卡桑德拉做這件事的最好方法是什麼?
在SQL中,我可以簡單地做
UPDATE test SET c2 = 'b';
但卡桑德拉不允許這樣做。
在Cassandra中沒有這樣做的CQL。您可以通過檢索所有的C1鍵做到這一點:
SELECT c1 from test;
然後編寫遍歷和做
UPDATE test SET c2 = 'b' WHERE c1 = <c1>;
對於每個C1返回的腳本。
Cassandra不是SQL數據庫。我建議閱讀低級Cassandra API和體系結構的概述。它會給出關於Cassandra能做什麼,不能做什麼,擅長什麼,不擅長什麼的好主意。此批量更新示例需要對錶(列族)中每行的此特定列進行獨立更新,並且這些更新中的每一個都是單獨的寫入操作。