在本文中,我们将讨论如何使用生存时间 (TTL)命令进行插入和更新,以及如何确定现有列的过期时间限制。
在 Cassandra 中,生存时间 (TTL) 起着重要作用,而如果我们想设置列的时间限制并且想在某个时间点后自动删除,那么此时使用 TTL 关键字来定义时间非常有用特定列的限制。
- 在 Cassandra 中,INSERT 和 UPDATE 命令都支持设置列中数据过期的时间。
- 它用于设置特定时间段的时间限制。通过 USING TTL 子句,我们可以在插入时设置 TTL 值。
- 我们可以使用 TTL函数来获取特定选定查询的剩余时间。
- 在插入点,我们可以使用 TTL 子句设置插入数据的过期限制。让我们考虑一下,如果我们要将过期限制设置为两天,那么我们需要定义它的 TTL 值。
- 通过使用 TTL,我们可以将有效期设置为两天,TTL 的值为 172800 秒。让我们通过一个例子来理解。
表:student_Registration
使用以下 CQL 查询创建表。
CREATE TABLE student_Registration(
Id int PRIMARY KEY,
Name text,
Event text
);
使用 TTL 插入:
要使用 TTL 插入数据,请使用以下 CQL 查询。
INSERT INTO student_Registration (Id, Name, Event)
VALUES (101, 'Ashish', 'Ninza') USING TTL 172800;
INSERT INTO student_Registration (Id, Name, Event)
VALUES (102, 'Ashish', 'Code') USING TTL 172800;
INSERT INTO student_Registration (Id, Name, Event)
VALUES (103, 'Aksh', 'Ninza') USING TTL 172800;
输出:
Id | Name | Event |
---|---|---|
101 | Ashish | Ninza |
102 | Ashish | Code |
103 | Aksh | Ninza |
现在,要确定特定列的剩余到期时间,请使用以下 CQL 查询。
SELECT TTL (Name)
from student_Registration
WHERE Id = 101;
输出:
ttl(Name) |
---|
172700 |
由于 TTL 时间限制,当您再次检查其 TTL 值时,它会减少。现在,使用以下 CQL 查询再次检查。
SELECT TTL (Name)
from student_Registration
WHERE Id = 101;
输出:
ttl(Name) |
---|
172500 |
使用 TTL 更新:
现在,如果我们想延长时间限制,那么我们可以借助 UPDATE 命令和 USING TTL 关键字进行扩展。我们来看一下。要将时间限制延长 3 天并将名称更新为“rana”,然后使用以下 CQL 查询。
UPDATE student_Registration
USING TTL 259200
SET Name = 'Rana'
WHERE Id= 102
输出:
Id | Name | Event |
---|---|---|
101 | Ashish | Ninza |
102 | Rana | Code |
103 | Aksh | Ninza |
SELECT TTL (Name)
from student_Registration
WHERE Id = 102;
输出:
ttl(Name) |
---|
259100 |
使用 TTL 删除列:
要删除特定的现有列,请使用以下 CQL 查询。
UPDATE student_Registration
USING TTL 0
SET Name = 'Ashish'
WHERE Id = 102;
注意:我们可以使用 TTL 的默认值为整个表设置默认 TTL。
参考 – https://docs.datastax.com/