mysql定時任務,每天的零點執行一個存儲過程


1 前言

利用navicat工具來寫存儲過程及定時執行,此文章是按照自身經驗總結的,僅作為記錄使用。

2 步驟

2.1 新建過程

2.2 在函數體寫你需要執行的代碼

CREATE DEFINER=`root`@`localhost` PROCEDURE `test`()
BEGIN
	#Routine body goes here...
	#DECLARE a int;
	SET @time = NOW();
	SET @item = 'num';
	SET @type = 'day';
	
	select content into @content from rank where  uid = 123456 and num >0;
	
        INSERT INTO rank2(time,item,type,content) VALUES(@time,@item,@type,@content);

        UPDATE rank SET num=0 WHERE userid >0;
END        

2.3 創建一個事件

2.3.1 新建事件

2.3.2 定義需要調用的過程

2.3.3 填寫你定時計划

代碼預覽如下:

CREATE EVENT `nodejs`.`Untitled`
ON SCHEDULE
EVERY '1' DAY STARTS '2018-07-25 00:00:00'
DO call test();    

3 異常

如果發現,你步驟都設置完了,還沒有起作用,那可能是定時器開關沒打開。

查看是否有開啟,方法 show variables like 'event%';

如果是OFF,則用SET GLOBAL event_scheduler = 1;或者SET GLOBAL event_scheduler = ON;開啟。開啟后其Value則為ON。

  

4 參考

1. https://blog.csdn.net/baochao95/article/details/45951201

2. https://www.cnblogs.com/woshimrf/p/5665236.html

3. 擴展資料之MySQL存儲過程和自定義函數、Navicat、創建存儲過程和函數、調用存儲過程和函數、三種方式、In和Out類型參數

4. 擴展資料之mysql如何讓一個存儲過程定時執行

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM