MySQL:删除10分钟之前的所有行
在某些场景中,我们需要定期清除数据库中的一些早期数据,以尽量减少占用硬盘空间的情况。本文将介绍一种删除 MySQL 数据库表中 10 分钟之前的所有行的方法。
阅读更多:MySQL 教程
步骤 1: 创建测试表格
首先,我们需要创建一个测试数据表格,以便后面演示删除行的操作。
CREATE TABLE test_table (
id INT(11) NOT NULL AUTO_INCREMENT,
data VARCHAR(255) NOT NULL,
created_at TIMESTAMP NOT NULL,
PRIMARY KEY (id)
);
步骤 2:插入测试数据
我们需要向测试表格中插入几行数据,以便进行删除操作。在此处,我们将插入 3 行数据,一个现在的时间和两个早于 10 分钟的时间戳。
INSERT INTO test_table (data, created_at) VALUES ('Test 1', NOW()), ('Test 2', DATE_SUB(NOW(), INTERVAL 5 MINUTE)), ('Test 3', DATE_SUB(NOW(), INTERVAL 15 MINUTE));
步骤 3:删除 10 分钟之前的所有行
下面是删除 10 分钟之前的所有行的 SQL 语句:
DELETE FROM test_table WHERE created_at < DATE_SUB(NOW(), INTERVAL 10 MINUTE);
以上 SQL 语句将删除创建时间早于当前时间的 10 分钟的所有行。
步骤 4:查看剩余数据
让我们运行以下 SQL 语句以查看删除之后的数据集:
SELECT * FROM test_table;
您将看到只有当前时间的一行数据。
总结
以上是如何删除 MySQL 数据库表中早于 10 分钟的所有行的简单方法。该操作可用于定期清洗旧数据,从而减少数据库服务的空间占用率。
极客教程