我试图使用时间戳插入(也更新和删除)Casandra中的数据,但表中没有任何帮助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;
Run Code Online (Sandbox Code Playgroud)
我认为你陷入了卡桑德拉的"时间戳控制".仅当新操作的时间戳比前一个操作的时间戳" 高 " 时,才执行C*中的操作.
让我们看一个例子,给出以下插入
INSERT INTO test (key, value ) VALUES ( 'mykey', 'somevalue') USING TIMESTAMP 1000;
Run Code Online (Sandbox Code Playgroud)
你期望这作为输出:
select key,value,writetime(value) from test where key='mykey';
key | value | writetime(value)
-------+-----------+------------------
mykey | somevalue | 1000
Run Code Online (Sandbox Code Playgroud)
它应该是这样的,除非你之前有人没有用更高的TS对这些信息进行操作 - 例如,如果你现在写的话
INSERT INTO test (key, value ) VALUES ( 'mykey', '999value') USING TIMESTAMP 999;
Run Code Online (Sandbox Code Playgroud)
这是输出
select key,value,writetime(value) from test where key='mykey';
key | value | writetime(value)
-------+-----------+------------------
mykey | somevalue | 1000
Run Code Online (Sandbox Code Playgroud)
正如你所看到的那样,ts也没有被更新.
HTH,卡罗
| 归档时间: |
|
| 查看次数: |
3933 次 |
| 最近记录: |