Windows环境下对mysql远程数据库中的一张表的数据进行定时清理(用Navicat工具)
参考链接:https://blog.csdn.net/tongluren381/article/details/106523796/
准备
mysql默认不开启定时任务执行,可以在Navicat中输入:
show variables like 'event_scheduler';
如果是ON,说明不用管,可以直接开始清理,如果是OFF,需要先打开。
方法一:执行set global event_scheduler=1
;这种方法相当于一次性的,重启后失效,所以不推荐使用。
方法二:修改mysql的配置文件my.ini(Windows环境下)或者my.cnf(Linux环境下),在[mysqld]下增加一行:
event_scheduler=ON
之后重启mysql服务即可:service mysqld restart
开始清理
1.选中数据库,点击“事件”。
2.点击“新建事件”。
3.在定义中输入需要执行的sql语句。如删除创建时间在7天前的数据(比如今天6月29日,命令执行后会删除6月22日之前的数据,包括6月22日):
delete from table where Date(create_time) <= DATE(DATE_SUB(NOW(),INTERVAL 7 DAY))
注:此处的大小写要严格按照规范输入,我有一个报错就是因为后面的DATE没有严格大写。
4.在“计划”部分填写定时任务执行周期,并输入起始时间。
5.全部设置完成之后点击“保存”按钮。
6.设置该定时任务的时间名(自定义)。
注:点击该事件,下方有选项可以直接设置该定时任务的状态(ENABLE
开启;DISABLE
关闭)