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類型參數