来自:mjsws > 馆藏分类
配色: 字号:
MySQL下自动删除指定时间以前的记录的操作方法
2019-02-27 | 阅:  转:  |  分享 
  
MySQL下自动删除指定时间以前的记录的操作方法关于Event:mysql5.1版本开始引进event概念。event既“时间触发器”,与t
riggers的事件触发不同,event类似与linuxcrontab计划任务,用于时间触发。通过单独或调用存储过程使用,在某一
特定的时间点,触发相关的SQL语句或存储过程。首先删除2天以前记录的SQL语句(webserver_monitormemory为表
名,time为时间字段):deleteFromwebserver_monitormemorywhereDATE(time)
<=DATE(DATE_SUB(NOW(),INTERVAL2day));创建存储过程:DELIMITER//CREAT
EPROCEDUREautodel()->BEGIN->deleteFromwebserver_monitorme
morywhereDATE(time)<=DATE(DATE_SUB(NOW(),INTERVAL2day));->
END->//DELIMITER;创建事件,定制每天执行autodel的存储过程:CREATEEVENT`event_
auto_del_memorydata`ONSCHEDULEEVERY1DAYSTARTS''2017-11-2000
:00:00''ONCOMPLETIONNOTPRESERVEENABLEDOCALLautodel();开启事件计划
(调度器)4种方法。键值1或者ON表示开启;0或者OFF表示关闭:SETGLOBALevent_scheduler=1;?
?SET@@global.event_scheduler=1;??SETGLOBALevent_scheduler=
ON;??SET@@global.event_scheduler=ON;查看当前是否已开启事件计划(调度器)3种方法:SHO
WVARIABLESLIKE''event_scheduler'';SELECT@@event_scheduler;SHOW
PROCESSLIST;?事件开启与关闭:ALTEREVENTevent_auto_del_memorydataONCOM
PLETIONPRESERVEENABLE;//开启某事件ALTEREVENTevent_auto_del_memory
dataONCOMPLETIONPRESERVEDISABLE;//关闭某事件这个是最简单但是也是最重要的,我们要手动的
启动这个定时器,要不然是没法工作的。ALTEREVENTevent_time_clear_dataON?COMPLETION
PRESERVEENABLE;另外,关闭定时器的代码是:ALTEREVENTevent_time_clear_dataO
N?COMPLETIONPRESERVEDISABLE;删除存储过程:DROPPROCEDUREpro_clear_dat
a;删除Event:http://www.pu81.cnhttp://www.ff787.comhttp://www.xb
y4.cnDROPEVENTIFEXISTSevent_time_clear_data1?
献花(0)
+1
(本文系mjsws首藏)