Mysql的定时任务

image.png

这张logUser表存储了用户的一些信息,现在要实行这样一个功能。
uid 是用户表

定期删除每个用户的过期数据,只保留最新十条。如果用户数据不满足10条,那么不执行删除。

无头绪啊。
cry.jpg

阅读 2.3k
2 个回答

用MySQL的event_scheduler,详细如下。
1.先确认MySQL的变量'event_scheduler'是否是'ON'

show variables like '%event%';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| event_scheduler | OFF   |
+-----------------+-------+

如果是off的话,设置成ON

 set GLOBAL event_scheduler=ON;

2.做成一个event
基本语法

CREATE EVENT <方法名> ON SCHEDULE <scheduler> DO <sql语句>

具体的话你可以去MySQL手册找。
现在假如你每天0:00执行的时候,我写了一个大致的例子。

delimiter $$
create event <这个是名字>
on schedule every 1 day
starts '2020-03-03 00:00:00'
do
begin
     <这个地方写你的SQL>
end$$
delimiter ;

使用 linux 的定时任务啊,有 cron 表达式
然后执行 sql 脚本就行了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题