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 ...