Setting the time-to-live (TTL) for value
Use the USING TTL N
option with INSERT and UPDATE
statements to automatically expire data in a column.
To set the TTL for data, use the USING TTL
clause. The
TTL
function may be used to retrieve the TTL information.
The USING TTL
clause can be used to insert or update data into a
table for a specific duration of time. To determine the current time-to-live for a
record, use the TTL
function.
Warning: The database
storage engine can only encode TTL timestamps through
January 19 2038
03:14:07 UTC
due to the Year 2038 problem. The TTL date overflow policy
determines whether requests with expiration timestamps later than the maximum
date are rejected or inserted. See -Dcassandra.expiration_date_overflow_policy.Procedure
-
Insert data into the table
cycling.calendar
and use theUSING TTL
clause to set the expiration period to 200 seconds.INSERT INTO cycling.calendar ( race_id, race_name, race_start_date, race_end_date ) VALUES ( 200, 'placeholder', '2015-05-27', '2015-05-27' ) USING TTL 200;
-
Issue a SELECT statement to determine how much longer the data has to
live.
SELECT TTL(race_name) FROM cycling.calendar WHERE race_id = 200;
ttl(race_name) ---------------- 200 (1 rows)
If you repeat this step after some time, the time-to-live value will decrease.
-
The time-to-live value can also be updated with the
USING TTL
clause in anUPDATE
statement.UPDATE cycling.calendar USING TTL 300 SET race_name = 'Tour de France - Stage 12' WHERE race_id = 200 AND race_start_date = '2015-05-27' AND race_end_date = '2015-05-27';
ttl(race_name) ---------------- 300 (1 rows)