mysql定时任务
在广河等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供网站建设、网站设计 网站设计制作按需搭建网站,公司网站建设,企业网站建设,成都品牌网站建设,成都全网营销推广,外贸营销网站建设,广河网站建设费用合理。
自 MySQL5.1.6起,增加了一个非常有特色的功能–事件调度器(Event Scheduler),可以用做定时执行某些特定任务(例如:删除记录、对数据进行汇总等等),来取代原先只能由操作系统的计划任务来执行的工作。更值得 一提的是MySQL的事件调度器可以精确到每秒钟执行一个任务,而操作系统的计划任务(如:Linux下的CRON或Windows下的任务计划)只能精 确到每分钟执行一次。对于一些对数据实时性要求比较高的应用(例如:股票、赔率、比分等)就非常适合。
如:每隔30秒将执行存储过程test,将当前时间更新到examinfo表中id=14的记录的endtime字段中去.
CREATE PROCEDURE test ()
BEGIN
update examinfo SET endtime = now() WHERE id = 14;
END;
create event if not exists e_test
on schedule every 30 second
on completion preserve
do call test();
2. windows、linux 的定时任务 这个就不举例了,通过脚本定时去调用mysql执行
最简便的就是用UNIX的cron解决
不知阁下的服务器是否unix系统并开启了cron
没cron的写起来貌似有点难
好多方法啊。
可以用cronjob,单独编一个删除数据库的php页面,用cronjob命令定时访问这个页面,例如
php -q /home/username/public_html/111.php
或者在数据库里面建立一个字段,来存储上次删除或者清空数据库的时间,再单独编一个删除数据库的php页面,然后在你的主页index.php前面加上判断语句,如果清空数据库时间大于一天,include访问执行那个php页面。例如:
if($lastreset strtotime("-1 day"))
@include("111.php");
你这个不应该问"php可以做到吗?",而该问"数据库能做到吗?"
用管理员登录重置或者用户登录时判断日期后用php操作数据库重置.如果想通过php,不需要任何登录执行的话,那考虑的是怎么在不登录情况下把日期传过去.最终还是php操作,不是数据库自动进行.综上,php不能做到.
删除数据代码呢?估计时间判断不准确,php安装里的时区看看,是不是是北京时间的
在PHP.INI中设置时区
date.timezone = PRC
在代码中设置时区
1 date_default_timezone_set('Asia/Shanghai');//'Asia/Shanghai' 亚洲/上海
2 date_default_timezone_set('Asia/Chongqing');//其中Asia/Chongqing'为“亚洲/重庆”
3 date_default_timezone_set('PRC');//其中PRC为“中华人民共和国”
4i ni_set('date.timezone','Etc/GMT-8');
5 ini_set('date.timezone','PRC');
6 ini_set('date.timezone','Asia/Shanghai');
7 ini_set('date.timezone','Asia/Chongqing');
国内有2分钟时差北方,南方
有二种方法:
1用MYSQL的存取过程:
具体步骤如下:
一、开启事件
查看event_scheduler状态
show variables like '%sche%';
修改event_schedule状态
set global event_scheduler=1;
(这部分出自)
二、创建事件
CREATE EVENT `NewEvent`
ON SCHEDULE EVERY 1 DAY STARTS '2010-11-16 06:00:00'
ON COMPLETION NOT PRESERVE
ENABLE
DO
update serialnumber set value=0
这样serialnumber 表value字段将每天早6点被清零
三、事件调用存储过程
创建存储过程
create PROCEDURE NewProcTest()
begin
update serialnumber set value=0;
end;
查看存储过程
show procedure status;
创建事件
CREATE EVENT `NewEvent`
ON SCHEDULE EVERY 1 DAY STARTS '2010-11-16 06:00:00'
ON COMPLETION NOT PRESERVE
ENABLE
DO
call NewProcTest()
第二种方法:
直接用PHP调用某公共代码,判断时间和是否更新过,然后做相应的处理!
售后响应及时
7×24小时客服热线数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款