在更新Cassandra中的TTL时是否需要设置某些内容?
我有一张这样的表,
CREATE TABLE session(
tokenId text PRIMARY KEY,
username text);
我插入这样的数据,
INSERT INTO session(tokenId, username) VALUES ('123123123123','admin') USING TTL 30;
我像这样更新TTL,
UPDATE session USING TTL 30 SET username = 'admin' WHERE tokenid = '123123123123' IF EXISTS;
在哪里它强行更新'用户名',更新需要一套,是否可以更新TTL?
谢谢, 哈利
答案 0 :(得分:2)
这是一个非常棘手的问题。让我尽力解释我的理解。
基本上,cassandra不允许您更新一行的TTL。如上所述here,为每个列维护TTL。回到您的示例,带有insert
值的TTL
语句将为insert语句中的所有列创建相同的TTL。同时,update
语句仅适用于预期的列(例如username
)。希望它有所帮助。
INSERT和UPDATE命令都支持为数据设置时间 一列到期。使用CQL设置到期时间(TTL)。