我试图使用时间戳在Cassandra中插入(否则更新和删除)数据,但表中没有变化 任何帮助PLZ?
BEGIN BATCH
INSERT INTO transaction_test.users(email,age,firstname,lastname) VALUES ('1',null,null,null) USING TIMESTAMP 0;
INSERT INTO transaction_test.users(email,age,firstname,lastname) VALUES ('2',null,null,null) USING TIMESTAMP 1;
INSERT INTO transaction_test.users(email,age,firstname,lastname) VALUES ('3',null,null,null) USING TIMESTAMP 2;
APPLY BATCH;
答案 0 :(得分:7)
我认为你正在陷入卡桑德拉"时间戳的控制"。仅当新操作的时间戳为" 更高"时才执行C *中的操作。比上一个。
让我们看一个例子,给出以下插入
INSERT INTO test (key, value ) VALUES ( 'mykey', 'somevalue') USING TIMESTAMP 1000;
您希望这是输出:
select key,value,writetime(value) from test where key='mykey';
key | value | writetime(value)
-------+-----------+------------------
mykey | somevalue | 1000
它应该是这样的,除非你之前没有人用更高的TS对这些信息进行操作 - 例如,如果你现在写的话
INSERT INTO test (key, value ) VALUES ( 'mykey', '999value') USING TIMESTAMP 999;
这是输出
select key,value,writetime(value) from test where key='mykey';
key | value | writetime(value)
-------+-----------+------------------
mykey | somevalue | 1000
正如你所看到的,ts值都没有被更新。
HTH, 卡罗