如何使用 Oracle NoSQL 数据库云服务 Python SDK 将 TTL 添加到现有表?

时间:2021-06-25 22:27:31

标签: nosql oracle-nosql

我已经创建了一个表并将一堆数据加载到表中。现在,我想在此表中实现生存时间功能,以便记录在 7 天后过期。

这是创建表命令:

 CREATE TABLE userInfo (
     userID INTEGER,
     userName STRING,
     userAge INTEGER,
     userAddress JSON,
     PRIMARY KEY(userID))

如何在不删除、重新创建表和使用 Python SDK 重新加载数据的情况下添加生存时间 (TTL)?

1 个答案:

答案 0 :(得分:0)

更改表的 TTL 只会影响在该时间之后写入的行;它对现有行没有影响。

除非您使用显式 TTL 重写每条记录,否则这是不可能的。

如果您使用的是版本 21.1,您可以在查询中使用 modification_time 函数来确定上次修改时间。在 20.2 中,您可以从 Row 获取相同的信息,但您必须使用 API 来扫描您的表格。

不要忘记,您还可以更新每一行的 TTL。但是不支持多行更新,你也有API

UPDATE User $u SET TTL 3 hours WHERE id = 1;
UPDATE User $u SET TTL remaining_hours($p) + 3 hours WHERE id = 1;