首页 > 解决方案 > 如何使用 Oracle NoSQL 数据库云服务 Python SDK 将 TTL 添加到现有表?

问题描述

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

这是创建表命令:

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

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

标签: nosqloracle-nosql

解决方案


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

除非您用明确的TTL.

如果您使用的是发布21.1,您可以modification_time在查询中使用该函数来确定最后一次修改时间。您可以从20.2Row 中获取相同的信息,但您必须使用 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;

推荐阅读