1.存儲過程
create procedure feifei
(
a int,
b int
)
begin
declare c int;
set c = a + b;
select c as sum;
end;
call feifei(1,2);
drop procedure if exists feifei;
CREATE TABLE `timetocid` (
`Id` int(11) NOT NULL AUTO_INCREMENT,
`cid` int(11) DEFAULT NULL,
`optime` date DEFAULT NULL,
PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2.job
一、創建計劃任務:
語法:
CREATE
[DEFINER = { user | CURRENT_USER }] #計劃任務的所有者,一般省略,則爲創建者;
#否則需要有相關權限,則可以指定其它用戶
EVENT #計劃任務關鍵字
[IF NOT EXISTS] #如果不存在則創建,可以省略;否則如果存在,則報錯
event_name #計劃任務名稱
ON SCHEDULE schedule #調度計劃,如每20分鐘,在幾點開始等,參考下面的schedule詳解
[ON COMPLETION [NOT] PRESERVE] #對於執行一次的任務,默認執行完則刪除.加此,
#可控制任務結束後計劃任務是否刪除或保留
[ENABLE | DISABLE | SLAVESIDE_DISABLED] #指示創建的計劃任務是否創建即有效(有
#效則立即執行一次),或禁止執行
[COMMENT 'comment'] #關於計劃任務的註釋,可放入任務的功能簡潔
DO sql_statement; #任務體,可以是單條語句,也可以是以BEGIN/END包裹的符合語句
schedule:
AT timestamp [+ INTERVAL interval] #在什麼時候開始運行或某時刻之後interval時間
#在運行,用於運行一次的計劃任務
| EVERY interval #或者簡單的每隔interval時間運行一次
[STARTS timestamp [+ INTERVAL interval]] #STARTS和ENDS配合EVERY關鍵字,
#指定運行時間段,單獨的STARTS指示STARTS以後的時間段
[ENDS timestamp [+ INTERVAL interval]]
interval:
quantity {YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE |
WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE |
DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND}
#quantity是具體數字,指示多少年或幾月或幾分鐘等
更改計劃任務
語法:
ALTER EVENT
[DEFINER = { user | CURRENT_USER }] #更改缺省用戶
event_name
[ON SCHEDULE schedule] #更改調度時間
[RENAME TO new_event_name] #計劃任務改名
[ON COMPLETION [NOT] PRESERVE] #更改一次運行結束後的行爲
[ENABLE | DISABLE | SLAVESIDE_DISABLED] #更改計劃任務狀態
[COMMENT 'comment'] #修改註釋
[DO sql_statement] #修改計劃執行體
三、刪除計劃任務
語法:
DROP EVENT [IF EXISTS] event_name
四、開啓MySQL計劃任務功能支持
MySQL中對計劃任務的支持是採用線程調度檢測計劃任務的。要此功能開啓計劃任務纔會執行。查看調度器狀態命令如下:
SHOW [FULL] PROCESSLIST\G
如下是沒有開啓的狀態:
mysql> SHOW FULL PROCESSLIST\G
*************************** 1. row ***************************
Id: 10
User: root
Host: localhost:4823
db: mysql
Command: Query
Time: 0
State: NULL
Info: SHOW FULL PROCESSLIST
1 row in set (0.00 sec)
通過如下全局配置的設置來開啓或關閉調度器:
SET GLOBAL event_scheduler = ON/OFF/1/0; --開/關
或SET @@global.event_scheduler = ON/OFF/1/0;
五、示例如下:
其中計劃任務體內可以是簡單語句,也可以調用存儲過程
delimiter //
drop event if exists createmonsterevent//
create event createmonsterevent
on schedule every 20 minute
starts CURRENT_TIMESTAMP + INTERVAL 10 minute
ENABLE
COMMENT '刷怪計劃任務'
DO
begin
#20分鐘
Call createmonster(date_sub(sysdate(),INTERVAL 24 minute),
date_sub(sysdate(),INTERVAL 2 minute));
end;
//
delimiter ;
mysql job
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
MySQL数据库集群-PXC方案
wy53780
2020-04-23 13:55:07
sql語法、關係建模
死瘦宅
2019-02-24 22:35:22
MySQL 事務、函數、觸發器、數據庫備份、權限管理
死瘦宅
2019-02-24 22:35:12
《從0到1學習Flink》—— Flink 讀取 Kafka 數據批量寫入到 MySQL
zhisheng
2019-02-24 21:04:11
SpringBoot 填坑 (一) | CentOS7.4 環境下,表時間字段默認值設置失效
一個優秀的廢人
2019-02-24 15:33:55
mysql-存儲過程
雙子城
2019-02-24 13:43:57
jmeter學習指南之操作 mysql 數據庫
小強測試
2019-02-24 13:34:06
20190222全天的實驗
清歡難尋
2019-02-24 13:17:21
數據庫監控:zabbix(fpmmm)
AMGYM
2019-02-24 13:05:14
數據庫監控:nagios(check_mysql_health)
AMGYM
2019-02-24 13:05:14
如何釋放已刪除的InnoDB磁盤空間
lvrenX
2019-02-24 13:04:33
MYSQL中視圖的使用
雙子城
2019-02-24 08:44:17
MySQL從刪庫到跑路
司木
2019-02-24 00:24:07
JavaBean操作
yi_sixian
2019-02-23 14:05:20
fdb2b技術博客簡介
fdb2b
2019-02-23 14:01:03