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? |
|