👋 欢迎来到吴老二技术博客,专注运维 / 数据库 / 云原生
首页/数据库/正文

MySQL定期删除数据 mysql定时删除30天前数据

吴
吴老二
2024-01-03数据库2360 次浏览0 条评论

要实现创建存储过程和定时调用存储过程的功能,你可以按照以下步骤进行操作:

  1. 创建存储过程:

     CREATE PROCEDURE KeepDatasWith30Days()
     BEGIN
         DECLARE maxId INT;
         SELECT max(Id) INTO maxId FROM tableName WHERE CreateTime < DATE(DATE_SUB(NOW(), INTERVAL 31 DAY));
         DELETE FROM tableName WHERE Id < maxId LIMIT 100000;
     END

    请将上述代码中的tableName替换为你要操作的表名。

  2. 确认MySQL版本是否为5.1以上: 执行以下SQL语句:

     SELECT VERSION();
  3. 确认MySQL事件是否开启: 执行以下SQL语句:

     SHOW VARIABLES LIKE '%event_scheduler%';

    如果结果显示OFF,则执行以下SQL语句开启事件调度器:

     SET GLOBAL event_scheduler = ON;
  4. 创建定时事件: 执行以下SQL语句,将startTime替换为你希望定时调用存储过程的起始时间:

     CREATE EVENT del_event
         ON SCHEDULE
         EVERY 1 DAY
         STARTS 'startTime'
         DO CALL KeepDatasWith30Days();
  5. 查看事件是否创建成功: 执行以下SQL语句:

     SHOW EVENTS;

    这将显示已创建的事件及其状态。

以上是实现创建存储过程和定时调用的基本步骤,你可以根据具体的需求和数据库环境进行调整和优化。请确保在执行任何数据库操作之前备份重要数据,并谨慎操作。

文章底部广告位在后台「广告设置」填写广告代码后显示

评论 0

评论需 登录 后发表(注册并验证邮箱)。
还没有评论,来抢沙发~