使用UPDATE时如何将TTL设置为where子句中提到的列

时间:2019-02-12 19:12:41

标签: cassandra cql

我了解到Cassandra在<details> <summary>Read More...</summary> Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. </details> <details> <summary>Read More...</summary> Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. </details> <details> <summary>Read More...</summary> Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. </details> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>时会将ttl更新为我插入的所有列。但是我该如何更新where子句中提到的其余列的ttl。

这是一个例子

USING TTL

这只会更新 UPDATE NerdMovies (movie, director, main_actor, year) VALUES ('Serenity', 'Joss Whedon', 'Nathan Fillion', 2005) where language = 'English' and country = 'US' USING TTL 86400; 列。我也想更新movie, director, main_actor, year列的TTL(顺便说一下,它们是主键)。我该如何实现?

1 个答案:

答案 0 :(得分:1)

您无法在主键上设置TTL。您可以在https://issues.apache.org/jira/browse/CASSANDRA-9312上为实现此功能的功能投票(但是,如果所有列都不都是PK,则可能不适用于您的用例)。

您可以读出这些值,然后使用TTL向上插入它们,例如:

   INSERT INTO NerdMovies (movie, director, main_actor, year, language, country)
   VALUES ('Serenity', 'Joss Whedon', 'Nathan Fillion', '2005', 'English', 'US')
   USING TTL 86400;