mysql定時任務(wù)
在廣河等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站建設(shè)、網(wǎng)站設(shè)計 網(wǎng)站設(shè)計制作按需搭建網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),成都全網(wǎng)營銷推廣,外貿(mào)營銷網(wǎng)站建設(shè),廣河網(wǎng)站建設(shè)費用合理。
自 MySQL5.1.6起,增加了一個非常有特色的功能–事件調(diào)度器(Event Scheduler),可以用做定時執(zhí)行某些特定任務(wù)(例如:刪除記錄、對數(shù)據(jù)進(jìn)行匯總等等),來取代原先只能由操作系統(tǒng)的計劃任務(wù)來執(zhí)行的工作。更值得 一提的是MySQL的事件調(diào)度器可以精確到每秒鐘執(zhí)行一個任務(wù),而操作系統(tǒng)的計劃任務(wù)(如:Linux下的CRON或Windows下的任務(wù)計劃)只能精 確到每分鐘執(zhí)行一次。對于一些對數(shù)據(jù)實時性要求比較高的應(yīng)用(例如:股票、賠率、比分等)就非常適合。
如:每隔30秒將執(zhí)行存儲過程test,將當(dāng)前時間更新到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 的定時任務(wù) 這個就不舉例了,通過腳本定時去調(diào)用mysql執(zhí)行
最簡便的就是用UNIX的cron解決
不知閣下的服務(wù)器是否unix系統(tǒng)并開啟了cron
沒cron的寫起來貌似有點難
好多方法啊。
可以用cronjob,單獨編一個刪除數(shù)據(jù)庫的php頁面,用cronjob命令定時訪問這個頁面,例如
php?-q?/home/username/public_html/111.php
或者在數(shù)據(jù)庫里面建立一個字段,來存儲上次刪除或者清空數(shù)據(jù)庫的時間,再單獨編一個刪除數(shù)據(jù)庫的php頁面,然后在你的主頁index.php前面加上判斷語句,如果清空數(shù)據(jù)庫時間大于一天,include訪問執(zhí)行那個php頁面。例如:
if($lastreset??strtotime("-1?day"))
@include("111.php");
你這個不應(yīng)該問"php可以做到嗎?",而該問"數(shù)據(jù)庫能做到嗎?"
用管理員登錄重置或者用戶登錄時判斷日期后用php操作數(shù)據(jù)庫重置.如果想通過php,不需要任何登錄執(zhí)行的話,那考慮的是怎么在不登錄情況下把日期傳過去.最終還是php操作,不是數(shù)據(jù)庫自動進(jìn)行.綜上,php不能做到.
刪除數(shù)據(jù)代碼呢?估計時間判斷不準(zhǔn)確,php安裝里的時區(qū)看看,是不是是北京時間的
在PHP.INI中設(shè)置時區(qū)
date.timezone = PRC
在代碼中設(shè)置時區(qū)
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');
國內(nèi)有2分鐘時差北方,南方
有二種方法:
1用MYSQL的存取過程:
具體步驟如下:
一、開啟事件
查看event_scheduler狀態(tài)
show variables like '%sche%';
修改event_schedule狀態(tài)
set global event_scheduler=1;
(這部分出自)
二、創(chuàng)建事件
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點被清零
三、事件調(diào)用存儲過程
創(chuàng)建存儲過程
create PROCEDURE NewProcTest()
begin
update serialnumber set value=0;
end;
查看存儲過程
show procedure status;
創(chuàng)建事件
CREATE EVENT `NewEvent`
ON SCHEDULE EVERY 1 DAY STARTS '2010-11-16 06:00:00'
ON COMPLETION NOT PRESERVE
ENABLE
DO
call NewProcTest()
第二種方法:
直接用PHP調(diào)用某公共代碼,判斷時間和是否更新過,然后做相應(yīng)的處理!
分享文章:php怎么每天自動減數(shù)據(jù) php當(dāng)前時間減一天
網(wǎng)站網(wǎng)址:http://www.rwnh.cn/article16/doohedg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)、網(wǎng)站設(shè)計公司、品牌網(wǎng)站設(shè)計、建站公司、網(wǎng)站改版、搜索引擎優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)