mysql 定時器概念 MySQL定時器

2021-10-13 00:08:49 字數 2100 閱讀 6642

mysql定時器

建立測試表

create table t

v varchar(100) not

null

) engine innodb default charset=utf8;

建立定時器 呼叫的儲存過程

delimiter $$

drop procedure if exists e_test $$

create procedure e_test()

begin

insert into t values('1');

end $$

delimiter ;

要使定時起作用 mysql的常量global

event_scheduler必須為on或者是1

-- 檢視是否開啟定時器

show variables like '%sche%';

-- 開啟定時器 0:off 1:on

set global event_scheduler = 1;

-- 建立事件

--每隔一秒自動呼叫e_test()儲存過程

create event if not exists event_test

on schedule every 1 second

on completion preserve

do call e_test();

-- 開啟事件

alter event event_test on

completion preserve enable;

-- 關閉事件

alter event event_test on

completion preserve disable;

select * from t;

從現在開始每隔九天定時執行

create  event event1

on schedule every 9 day starts now()

on completion preserve enable

dobegin

call total();

end每個月的一號凌晨1 點執行

create  event event2

on schedule every 1 month starts

date_add(date_add(date_sub(curdate(),interval day(curdate())-1

day), interval 1 month),interval 1 hour)

on completion preserve enable

dobegin

call stat();

end每個季度一號的凌晨2點執行

create  event total_season_event

on schedule every 1 quarter starts date_add(date_add(date(

concat(year(curdate()),'-',elt(quarter(curdate()),1,4,7,10),'-',1)),interval

1 quarter),interval 2 hour)

on completion preserve enable

dobegin

call season_stat();

end每年1月1號凌晨四點執行

create  event total_year_event

on schedule every 1 year starts

date_add(date(concat(year(curdate()) + 1,'-',1,'-',1)),interval 4

hour)

on completion preserve enable

dobegin

call year_stat();

endmysql的event在進行按月,季,年進行自動呼叫儲存過程時,為了測試可以把系統改為年的最後一天,如2010-12-31

23:59:55;

這個oracle的job就會把月,季,年儲存過程執行一遍。但mysql改了系統時間了event也沒有定時執行。不知道各位大蝦有沒有什麼好辦法?可以解決這個問題。

mysql 定時器概念 Mysql 定時器

定時任務 週期任務 檢視命令 show variables like event sche 顯示的event scheduler為off時用以下命令開啟 set global event scheduler 1 注意 以上的改法在資料庫重啟後將會恢復為原來狀態,要想資料庫重啟後也可以讓event s...

mysql 定時器概念 MySQL 定時器

mysql定時器是系統給提供了event,而oracle裡面的定時器是系統給提供的job。廢話少說,下面建立表 create table mytable id int auto increment not null,name varchar 100 not null default introduc...

mysql定時器 教程 Mysql 定時器

定時任務 週期任務 檢視命令 show variables like event sche 顯示的event scheduler為off時用以下命令開啟 set global event scheduler 1 注意 以上的改法在資料庫重啟後將會恢復為原來狀態,要想資料庫重啟後也可以讓event s...