【发布时间】:2020-08-22 22:08:30
【问题描述】:
我正在使用 MariaDB,并希望定期从我的数据库中清除记录,每天只保留数据库中的最后一条记录,因此超过 7 天将只剩下 7 条记录。
我发现了类似于我想做的事情here。
DELETE FROM `table` WHERE id NOT IN ( SELECT id FROM (
SELECT id
FROM `table`
ORDER BY id DESC
LIMIT 1 ) foo );
这会删除除最后一条记录之外的所有记录,但我想要一些每天都会留下最后一条记录的东西,所以我每天都有最新的条目。该解决方案不必重复过去,我可以每天在午夜运行它来处理前一天。
我有一个名为“stamp”的列,它是一个时间戳列。
【问题讨论】:
-
顺便说一句,对于这种事情,创建一个只保留您想要保留的数据的新表,然后删除旧表并重命名新表通常会更快。
-
为什么我的问题是-1?我是新手,寻求帮助。不需要。