我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Mysql实现定时删除表中的数据

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Mysql实现定时删除表中的数据

最近做项目的时候,想要实现一种验证码几分钟内有效的功能,于是就想到了定时删除数据库中存在的数据从而实现该功能,然后温习了一下数据库事件、定时器的相关功能,查询了一些文章,在此分享一下实现的方法。

首先看一下自己的mysql有没有开启事件调度器,在mysql图形化界面新建查询或者直接在MySQL中输入以下代码

show variables like '%event_scheduler%';

得到结果应该如下图

7bdff3d53d1c46b7afd3a36ce219e111.png

Value属性为ON则表示已经打开,如果显示为OFF,则输入以下语句

set global event_scheduler=1;     

 之后该value值就变成on了,我们便可以开始定时删除数据的操作

首先查看你的表,在其中插入一条表示时间的列,用于记录比较,可以参考下我的(红框圈住的)

4c80bd5e9b2e41428d947c140851667a.png

其中,列名起的名字后面要用,我这里起的是time,大家可以看一下我后面代码里面time字段要替换为你起的名字。数据类型选择timestamp(时间戳),默认值CURRENT_TIMESTAMP,这两个必须固定,默认值的作用是会在你插入数据是自动产生一个当前时间插入你的数据中。 

 这两步完成之后,就可以直接输入sql语句

USE xxx1;CREATE EVENT xxx2ON SCHEDULEEVERY 1 MINUTE DODELETE FROM xxx3 WHERE TIME< DATE_SUB(CURRENT_TIMESTAMP,INTERVAL 1 MINUTE);

解释一下,xxx1是你的数据库名,xxx2是事件名,你自己起一个就行,xxx3是你的表名。time替换为你的列名。

这里面有两个时间,第一个EVERY 1 MINUTE的意思是每1分钟调用一次该事件,第二个INTERVAL 1 MINUTE的意思是一分钟时间,DATE_SUB将CURRENT_TIMESTAMP也就是当前时间和1分钟相减,也就是当前时间再往前推一分钟(比如当前时间是11:49,往前推一分钟就是11:48)。如果TIME字段的值小于该值,也就说明time值为比当前时间一分钟以前更久远的数据,where条件成立,执行delete语句。

这两个时间都可以根据自己需要进行改动。

然后就可以实现每一分钟删除一次已存在时间超过一分钟的数据啦!(当然会有时间误差,因为是一分钟调用一次,假如调用的时候是59秒,那就会在1分59秒删除)

同时在这里说一下mysql里面时间大小的比较,比较通俗的说,越早的数据越小,也就是2021年10月1日减去2021年9月30日得到的结果是正的,反之是负的。

 

来源地址:https://blog.csdn.net/qq_53137566/article/details/130132508

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Mysql实现定时删除表中的数据

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

PHP如何定时删除MySQL的数据

这篇“PHP如何定时删除MySQL的数据”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“PHP如何定时删除MySQL的数据”文
2023-07-05

mysql中删除数据表的语句

在 mysql 中,删除数据表的语句为:drop table 表名。该语句将永久删除指定名称的数据表及其中的所有数据,因此在使用前应确保不再需要该数据。MySQL 中删除数据表的语句在 MySQL 中,删除数据表的语句为:DROP TAB
mysql中删除数据表的语句
2024-05-01

mysql如何删除数据表和关联的数据表删除详情

目录前言一、mysql删除没有被关联的表二、删除被其他表关联的主表前言删除数据表的时候,表的定义和表中所有的数据均会被删除。因此,在进行删除操作前,最好对表中的数据做一个备份,以免造成无法挽回的后果。mysql删除数据表分为两种情况;
2022-07-26

mysql数据库中表怎么删除

删除 mysql 数据库中的表的步骤如下:确保拥有删除权限。使用 drop table table_name 命令删除表。可使用附加选项,如级联删除外键 (cascade) 或检查表是否存在 (if exists)。在删除表之前,请确保备份
mysql数据库中表怎么删除
2024-08-05

如何实现MySQL中删除数据的语句?

如何实现MySQL中删除数据的语句?数据库管理系统中,删除数据是常见的操作之一。MySQL作为一款常用的关系型数据库管理系统,提供了简单且有效的删除数据的语句。在本文中,我们将讨论如何实现MySQL中删除数据的语句,包括具体的代码示例和一些
如何实现MySQL中删除数据的语句?
2023-11-08

如何删除mysql表中的一条数据

要删除MySQL表中的一条数据,可以使用DELETE语句。以下是删除表中一条数据的基本语法:```DELETE FROM 表名 WHERE 条件;```例如,假设有一个名为"users"的表,其中有一个名为"id"的列用于唯一标识每个用户的
2023-08-09

编程热搜

目录