执行SQL语句实现定时删除

 1.创建定期删除的存储过程

CREATE PROCEDURE `storage_name` ( IN days_interval INT ) BEGIN
    DELETE 
    FROM
        conversation_count 
    WHERE
        (
            TO_DAYS(
            NOW()) - TO_DAYS( create_time )) >= days_interval;
    
    END

  • storage_name 存储过程的名称; days_interval: 输入参数,类型是整数
  • BEGIN ... END:这标志着存储过程的开始和结束。
  • TO_DAYS(NOW()) - TO_DAYS( create_time )) >= days_interval;当前时间减去创建时间大于等于输入参数就删除这条数据

2.调用存储过程

CALL `storage_name`(30);

  • CALL MYSQL中执行存储过程的关键字
  • storage_name 你需要调用的存储过程的名称
  • 30 传递给存储过程(storage_name)的参数

 3.启用事件调度

  •  确认是否启动事件调度,默认是开启状态

 SHOW VARIABLES LIKE 'event_scheduler';

  • value显示ON就是启动,OFF就可以执行下面命令启动

 SET GLOBAL event_scheduler = ON;

 4.创建事件

  •  创建新的事件,定期去执行存储过程或者SQL语句

CREATE EVENT delete_old_logs ON SCHEDULE EVERY 1 DAY STARTS CURRENT_TIMESTAMP DO
CALL MYSQL ( 30 );

  •  delete_old_logs是事件名称
  • ON SCHEDULE EVERY 1 DAY STARTS 表示每天执行一次,当前时间开始
  • DO CALL MYSQL (30) 指需要触发的存储过程,并传入30作为参数

 5. 管理事件

  • 事件创建完成,想查看事件

SHOW EVENTS;

  •  需要删除事件

 DROP EVENT IF EXISTS delete_old_logs;

  •  delete_old_logs替换成你需要删除事件的名称
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值