好久沒寫博客了,因為沒啥可寫,感覺自己對技術(shù)的追求已經(jīng)沒有那么強烈了。今天總結(jié)一下mysql自帶的定時計劃。
首先show variables like '%event_sche%';
查詢定時策略是否開啟,如果是關(guān)閉的話,需要先開啟哦。
執(zhí)行語句即可:set global event_scheduler=1;
文章來源:http://www.zghlxwxcb.cn/news/detail-595253.html
- 創(chuàng)建存儲過程
下述案例創(chuàng)建了 名為test_proce
的存儲過程函數(shù),方便創(chuàng)建事件,事件直接調(diào)用該存儲過程。
use miaosuyun;
delimiter //
create procedure test_proce()
begin
UPDATE order_course a
join (
SELECT
B.*
FROM
(
SELECT
ROW_NUMBER() over ( PARTITION BY a.id ) AS row_num,A.*
FROM
order_course A
WHERE
A.course_username IN (
SELECT
course_username
FROM
order_course
WHERE
course_status IN ( '2', '4' ,'12')
GROUP BY
course_username
HAVING
SUM( CASE WHEN course_status = '4' THEN 1 ELSE 0 END ) = 0
AND SUM( CASE WHEN course_status = '12' THEN 1 ELSE 0 END ) = 0
AND SUM( CASE WHEN course_status = '2' THEN 1 ELSE 0 END ) > 0
)
AND A.course_status = '2'
) B
WHERE
B.row_num = 1
) b on a.id = b.id set a.course_status = '1';
update order_course a
join (select *from order_course a where a.course_status in ('3','4') and a.recent_update_time <= DATE_SUB(NOW(), INTERVAL 10 MINUTE)) b on a.id = b.id
set a.course_status = '1',a.error_msg= null,a.cookie=null,a.watch_finish_rate=0;
end//
delimiter ;
- 創(chuàng)建事件
-- 刪除事件
drop event second_event
-- 創(chuàng)建事件 并 每隔300秒調(diào)用一次
create event second_event
on schedule every 300 second
do call test_proce();
常用定時執(zhí)行計劃文章來源地址http://www.zghlxwxcb.cn/news/detail-595253.html
-- 表示創(chuàng)建后并不開始生效
on completion preserve disable
on schedule every 1 second //每秒執(zhí)行1次
on schedule every 2 minute //每兩分鐘執(zhí)行1次
on schedule every 3 day //每3天執(zhí)行1次
on schedule at current_timestamp()+interval 5 day //5天后執(zhí)行
on schedule at current_timestamp()+interval 10 minute //10分鐘后執(zhí)行
on schedule at '2016-10-01 21:50:00' //在2016年10月1日,晚上9點50執(zhí)行
on schedule every 1 day starts current_timestamp()+interval 5 day ends current_timestamp()+interval 1 month //5天后開始每天都執(zhí)行執(zhí)行到下個月底
on schedule every 1 day ends current_timestamp()+interval 5 day //從現(xiàn)在起每天執(zhí)行,執(zhí)行5天
- 開啟/關(guān)閉 任務(wù)
event second_event
alter event second_event on completion preserve enable;
event second_event
alter event second_event on completion preserve disable;
- 查詢事件
SELECT event_name,event_definition,interval_value,interval_field,status,last_executed FROM information_schema.EVENTS;
到了這里,關(guān)于MySql定時執(zhí)行SQL的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!