mysql - 如何删除超过一定数量的表的所有记录以进行清理

标签 mysql sql sql-server oracle

为了说明我的问题,让我们以滚动日志文件为例。您设置了一个字节上限,超过它的每个字节都将被删除以放置新条目。

我的数据库需要类似的东西,我想创建一个每天执行的查询。

查询将删除 表 TN 记录之上的所有旧记录。

当然,记录将按日期降序排列。

该表中有数百万条记录。

最佳答案

如果ID是T的主键:

delete T where ID not in (select top N ID from T order by date_column desc)

关于mysql - 如何删除超过一定数量的表的所有记录以进行清理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7764956/

相关文章:

SQL 计数器失败

c# - 如何在C#中声明sql变量

c# - 一个或多个实体的验证失败。有关源错误 db.SaveChanges() 的更多详细信息,请参阅 'EntityValidationErrors' 属性;

mysql - 多个MySQL操作对表交互

mysql - 具有多个参数的 GROUP BY 和 COUNT

java - 无法持久化对象

mysql - 重置 MySQL root 密码无效

sql - ROW_NUMBER() 与 DISTINCT

sql-server - 将 nvarchar 转换为 int 时转换失败

sql-server - 在 SQL Server 中计算移动范围(无数组)