在cassandra中更新具有空值和空writetime(value)的行

8iwquhpp  于 2023-10-18  发布在  Cassandra
关注(0)|答案(1)|浏览(119)

我在Cassandra表中有一个记录包含空值,并希望将其更新为新值

cqlsh:mydb> select * from mytable where id = 21;
 id      | value
---------+-------
 21      |  null

 cqlsh:mydb> select WRITETIME(value) AS timestamp_value from mytable where id = 21;

 timestamp_value
-----------------
            null

但是InsertUpdate语句没有任何效果。

UPDATE mytable USING TIMESTAMP 3392962145717000  SET value = "new value" WHERE id=21;
INSERT INTO mytable (id,value) VALUES (21,"new value") USING TIMESTAMP 3392962145717000;

执行后,时间戳和值保持不变,并且没有报告错误。有没有办法用一个新值来更新行?

6za6bjd0

6za6bjd01#

你用的是哪个Cassandra版本?
我在阿斯特拉做了测试,它的工作

token@cqlsh:catalog>  CREATE TABLE catalog.mytable (
           ...  id int,
           ...  value text,
           ...   PRIMARY KEY (id)
           ...  );
token@cqlsh:catalog> INSERT INTO catalog.mytable (id) VALUES (21);
token@cqlsh:catalog> select WRITETIME(value) AS timestamp_value from catalog.mytable where id = 21;

 timestamp_value
-----------------
            null

(1 rows)

token@cqlsh:catalog> UPDATE mytable USING TIMESTAMP 3392962145717000  SET value = 'new value' WHERE id=21;

token@cqlsh:catalog> select * from mytable where id=21;

 id | value
----+-----------
 21 | new value

相关问题