mysql定时调用存储过程,对表数据集表结构进行备份
存储过程实例:
create procedure backupsms()begin declare tname varchar(64); set @tname = concat('sms_accpet',date_format(now(),'%y%m')); set @rname = concat('create table ',@tname,' select * from sms_accpet'); prepare create_table from @rname; execute create_table; delete from sms_accpet;
定时器实例
create event event_sms on schedule every 1 month starts date_add(date_add(date_sub(curdate(),interval day(curdate())-1 day), interval 1 month),interval 1 hour) on completion preserve enable do call backupsms();
参考网站:
存储过程:
http://blog.csdn.net/youngqj/article/details/6936632
http://blog.csdn.net/sun886/article/details/7992935
定时器:
http://www.cnblogs.com/gaizai/archive/2012/12/24/2831315.html
http://lobert.iteye.com/blog/1953827
1.复制表结构及数据到新表create table 新表select * from 旧表2.只复制表结构到新表create table 新表select * from 旧表 where 1=2即:让where条件不成立.方法二:(低版本的mysql不支持,mysql4.0.25 不支持,mysql5已经支持了)create table 新表like 旧表3.复制旧表的数据到新表(假设两个表结构一样)insert into 新表select * from 旧表4.复制旧表的数据到新表(假设两个表结构不一样)insert into 新表(字段1,字段2,…….)select 字段1,字段2,…… from 旧表
样例抽选
每天凌晨三点执行 create event event_call_defer on schedule every 1 day starts date_add(date(curdate() + 1),interval 3 hour) on completion preserve enable do begin call test.warn(); end 每个月的一号凌晨1 点执行 create event event2 on schedule every 1 month starts date_add(date_add(date_sub(curdate(),interval day(curdate())-1 day), interval 1 month),interval 1 hour) on completion preserve enable do begin call stat(); end 每个季度一号的凌晨2点执行 create event total_season_event on schedule every 1 quarter starts date_add(date_add(date( concat(year(curdate()),'-',elt(quarter(curdate()),1,4,7,10),'-',1)),interval 1 quarter),interval 2 hour) on completion preserve enable do begin call season_stat(); end 每年1月1号凌晨四点执行 create event total_year_event on schedule every 1 year starts date_add(date(concat(year(curdate()) + 1,'-',1,'-',1)),interval 4 hour) on completion preserve enable do begin call year_stat(); end