1

我有一张包含 Time32 列和大量行的表。我的问题是下一个。

当我的表达到一万行时,我想开始归档每一行早于指定值。为了创建查询,我将使用 Time32 列,它代表行中收集的数据的时间戳。因此,使用此查询我想删除工作表中的旧行,并存储在为存储存档记录而保留的其他表中。可能吗?如果是,最有效的方法是什么?

我知道 whereAppend() 方法,但是这个方法只复制记录,而不是从实际表中删除。谢谢你的建议。干杯!

4

1 回答 1

1

将记录从给定数据库的一个表归档到另一个表的一般方法是将记录复制到目标表中,然后删除源表中的相同记录。

也就是说,根据您的数据库引擎和在此基础上构建的语言的功能,您可以编写原子查询命令,为您执行原子“复制然后删除”,但这取决于您的数据库引擎功能。

在您归档旧记录的情况下,一种强大的方法可以是通过复制 n 条记录的块(n 大小与您可以临时克隆的数据量)按块复制要归档的记录,这是临时额外的大小和复制删除操作的开销),然后删除这 n 条记录,依此类推,直到归档所有满足条件 Time32 字段早于给定时间戳阈值的记录。

于 2012-05-08T11:16:52.790 回答