来源:自学PHP网 时间:2015-04-16 10:50 作者: 阅读:次
[导读] 关于mysql下的存储过程以及事件的创建 下面这个存储过程主要实现的功能就是查询表里面半年前的数据,如果有就存到文件,然后将数据删除。CREATE DEFINER = `root`@`localhost`...
关于mysql下的存储过程以及事件的创建 下面这个存储过程主要实现的功能就是查询表里面半年前的数据,如果有就存到文件,然后将数据删除。 CREATE DEFINER = `root`@`localhost` PROCEDURE `NewProc`() BEGIN select COUNT(*) INTO @count from S_ACCOUNT where date_add(registerTime, interval 6 month)<=NOW(); IF @count>0 THEN set @today=TIME_TO_SEC(now()); set @select_sql=concat("select * from S_ACCOUNT where date_add(registerTime, interval 6 month)<=NOW() INTO OUTFILE 'C:/\\",@today,".txt' FIELDS TERMINATED BY ',';"); PREPARE charu FROM @select_sql; EXECUTE charu; delete from S_ACCOUNT where date_add(registerTime, interval 6 month)<=NOW() ; commit; END IF; END;FIELDS TERMINATED BY ',' 字段间分割符 OPTIONALLY ENCLOSED BY '"' 将字段包围 对数值型无效 LINES TERMINATED BY '\n' 换行符 下面是创建事件的代码 ,逻辑是从'2014-11-05 09:00:00'开始,每天去执行pro_test()这个过程。 CREATE DEFINER=`root`@`localhost` EVENT `NewEvent` ON SCHEDULE EVERY 1 DAY STARTS '2014-11-05 09:00:00' ON COMPLETION NOT PRESERVE ENABLE DO call pro_test(); 当我们在创建事件的时候有可能会提示事件处于关闭状态,这个时候就需要手动开启事件。 首先在sql中查询计划事件的状态:SHOW VARIABLES LIKE 'event_scheduler' 也可以用脚本来实现: |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com