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建立使用者表 mysql 建庫建表建使用者
1.建立資料庫 create database school 2.使用資料庫 use school 3.建立使用者 create user jame localhost identified by jame 4.授權使用者 注意這裡是用了 哦,可以自己講school也替換成 號 grant sele...
mysql建表思路 MySQL 建表思路
思想 硬碟如倉庫,表如倉庫中貨架 常用與不常用等分類 欄位如貨物 尺寸是固定或變動 訪問貨物涉及到貨架的佔位 效率。資料型別選用,建表思路,正規化 資料型別特點 資料型別的速度關係 最快 整形 date,time char,enum varchar text blob 最慢 char 與 varch...
mysql建表建索引6 mysql建表建索引
建表 create table sj projects id int 11 not null auto increment,title varchar 255 not null default comment 專案名稱 platform id int 11 not null default 0 co...