mysql 定时器执行sql删除冗余信息

本文介绍如何使用MySQL的事件调度器(Event Scheduler)来创建定时任务,包括定期插入和删除数据库中的冗余信息。通过具体步骤和SQL语句,展示了如何开启事件调度器,创建定时器,并设置其执行频率和开始时间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景:存在一张表会一直无限制保存一些信息(要删除那些冗余信息)

一、查询Event时间是否开启

       show variables like '%sche%';

        一般情况下是OFF(我这是开启的情况下,不开启的话你的定时器就不会生效)  ,执行下列语句开启

 set global event_scheduler=1;

二、编写定时器

     1、测试增加的定时器(用于给删除数据时提供测试数据)

     DROP EVENT IF EXISTS  massege_add      (如果名为massege_add  的定时器存在就删除)
    CREATE EVENT if not exists massege_add   (增加定时器)
    ON SCHEDULE EVERY 60 minute                 (每六十分钟执行一次)
    STARTS '2019-11-13 14:15'                             (从2019年11月13日开始)
    ON COMPLETION PRESERVE
    ENABLE
    DO
    INSERT INTO t_emm_device_sim(imei,simSerialNumber) VALUES('11111','22222')   (要执行的sql语句)

    2、删除冗余信息定时器

    DROP EVENT IF EXISTS massege_delete
   CREATE EVENT if not exists massege_delete
   ON SCHEDULE EVERY 1 DAY                          (跟上面一样不过这个表达的意思是每天执行一次)
   STARTS '2019-11-10 00:00:00'
   ON COMPLETION PRESERVE
   ENABLE
   DO
   DELETE FROM t_emm_device_sim WHERE imei = '11111'

 

三、其他语句

      -- 开启事件
       alter event massege_add ON
       COMPLETION PRESERVE ENABLE;

      -- 关闭事件
      alter event massege_add ON
      COMPLETION PRESERVE DISABLE;

 

永久开启

/etc/my.cnf文件中添加event_scheduler=on语句,重启mariadb服务后。即可开启。

sql往前推一天

SELECT DATE_FORMAT(date_sub(curdate(),interval 1 day),'%Y-%m-%d');

查一个时间查

SELECT CONCAT((DATE_FORMAT(date_sub(curdate(),interval 1 day),'%Y-%m-%d')),' ','00:00:00');
SELECT CONCAT((DATE_FORMAT(date_sub(curdate(),interval 1 day),'%Y-%m-%d')),' ','23:59:59');

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhl_BeginLife

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值