mysql用event設定定時任務

2021-09-02 15:46:36 字數 2431 閱讀 7561

mysql設定定時任務:

需求:mysql資料庫裡面做個定時任務自動每天建立一張表。

1.檢視是否開啟event與開啟event

show variables like '%sche%';  

若未開啟,set global event_scheduler =1;

2.建立儲存過程

每天建立乙個名為 test_年月日的表

delimiter //

drop procedure if exists create_table01//

create procedure create_table01()

begin

declare str_date varchar(50);

set str_date = date_format(now(),'%y%m%d');  

set @sqlcmd1 = concat('create table test_',str_date,'(

id int(11) not null auto_increment primary key,

time datetime not null

) ;');

prepare p1 from @sqlcmd1;

execute p1;

deallocate prepare p1;

end//

delimiter ;

3.建立事件,呼叫儲存過程

drop event if exists test_event01;

create event test_event01

on schedule every 1 day starts now()

do call create_table01();

開啟事件

alter event test_event on completion preserve enable;

show tables;

查詢是否建表成功

若是想關閉事件:

alter event test_event on completion preserve disable;

4.事件執行時間的設定

create event test_event01 on schedule every 1 day starts '2012-09-24 00:00:00'

on completion preserve enable do call  create_table01();

every #後面的是時間間隔,可以選 1 second,3 minute,5 hour,9 day,1 month,1 quarter(季度),1 year

#從2023年1月13號0點開始,每天執行一次

on schedule every 1 day   starts '2013-01-13 00:00:00'

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

on schedule every 9 day starts now() ;

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

on schedule every 1 month starts date_add(date_add(date_sub(curdate(),interval day(curdate())-1 day),interval 1 month),interval 1 hour);

#每個季度一號的凌晨1點執行

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 1 hour);

#每年1月1號凌晨1點執行

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 1 hour);

5.幾個相關概念

儲存程式:( 儲存函式(stored function)+儲存過程(stored procedure)+觸發器(trigger)+事件(event) )

儲存函式:返回乙個計算結果,該結果可以用在表示式裡

儲存過程:不直接返回乙個結果,但可以用來完成一般的運算或是生成乙個結果集並傳遞會客戶

觸發器:與資料表關聯,當那個資料表被 insert、delete、update語句修改時,觸發器將自動執行

事件:根據時間表在預訂時刻自動執行

mysql建立定時器(event)

mysql建立定時器 event 步驟。1 select version 檢視當前使用的mysql版本。2 showvariables like sche 檢視是否開啟event與開啟event。event功能預設是關閉的,可以使用上面的語句來看event的狀態,如果是off或者0,表示是關閉的。3...

MySQL 定時器EVENT學習

mysql從5.1開始支援event功能,類似oracle的job功能。有了這個功能之後我們就可以讓mysql自動的執行資料彙總等功能,不用像以前需要操作的支援了。如linux crontab功能。建立測試表 create table t v varchar 100 not null engine ...

MySQL 定時器EVENT學習

原文 mysql 定時器event學習 mysql從5.1開始支援event功能,類似oracle的job功能。有了這個功能之後我們就可以讓mysql自動的執行資料彙總等功能,不用像以前需要操作的支援了。如linux crontab功能。建立測試表 create table t v varchar ...