我有一個timestamp
列的表,我想操作該列的值。舉例來說,我需要沿線做一些事情:如何操縱Apache Cassandra中的時間戳列
UPDATE mytable SET datetimecolumn = datetimecolumn + 10mins
它是如何在Apache的卡桑德拉做了什麼?
UPDATE:答案似乎是「你不行」。但是選定的答案是我們可以明顯看到的最接近的答案。
我有一個timestamp
列的表,我想操作該列的值。舉例來說,我需要沿線做一些事情:如何操縱Apache Cassandra中的時間戳列
UPDATE mytable SET datetimecolumn = datetimecolumn + 10mins
它是如何在Apache的卡桑德拉做了什麼?
UPDATE:答案似乎是「你不行」。但是選定的答案是我們可以明顯看到的最接近的答案。
只有當數據類型是計數器時,纔可以查詢類似的這一個。
使用計數器:
計數器是用來存儲在增量改變了一些特殊的列。例如,您可以使用計數器列來計算查看頁面的次數。
僅在專用表中定義計數器並使用計數器數據類型。您不能索引,刪除或重新添加計數器列。表中的所有非計數器列必須定義爲主鍵的一部分。
例子:
CREATE TABLE mytable (
pk1 int PRIMARY KEY,
datetimecolumn counter
);
在這裏,你必須在毫秒使用datetimecolumn值。
第一次,你必須使用更新查詢與毫秒值的時間讓我們說1487686182403
UPDATE mytable SET datetimecolumn = datetimecolumn + 1487686182403 where pk1 = 1
現在有了PK = 1 MYTABLE包含datetimecolumn = 1487686182403值。
如果要通過10分鐘遞增datetimecolumn(600000毫秒)
UPDATE mytable SET datetimecolumn = datetimecolumn + 600000 where pk1 = 1
來源:https://docs.datastax.com/en/cql/3.1/cql/cql_using/use_counter_t.html
預先寫入是卡桑德拉的反模式。您已經在客戶端操縱該值並像往常一樣更新;換句話說,您必須搜索(選擇)該值,進行更改(增加10分鐘),然後在cassandra更新新值。
我不知道如果我理解你的答案。你能否詳細說明一下。 – adrin