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