mysql 如何定時執行

本文主要轉自 http://www.2cto.com/database/201202/120821.html

還加入一些自己在執行過程中遇到的問題和解決方法。

5.1版本以後,MYSQL支持定時執行(event)的功能,就跟linux的crontab差不多。
 
先查看一下你的MSYQL版本,查詢版本信息的SQL語句:
 
select VERSION()
確定版本支持之後,再查看一下event是否開啓:
 
show variables like ’%sche%’;
如果未開啓,那如何開啓呢?
 
show VARIABLES LIKE ’%sche%’;
set global event_scheduler =1;
show VARIABLES LIKE ’%sche%’;
一般定時執行有2種:
 
1、從具體一個時間點開始,每隔一段時間執行一次;
 
從現在開始,每30秒執行一次
 
create event if not exists e_test
on schedule every 30 second starts now()
on completion preserve
do
INSERT into sdb_yoyi (yoyiscid,orderid) VALUES(2,3)
2、從具體一個時間點開始,在當日的某個時間點進行執行;
 
每個月的一號凌晨1點執行
 
create event if not exists e_test2
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
do
INSERT into sdb_yoyi (yoyiscid,orderid) VALUES(2,3)
 
也可以對事件任務進行關閉:
 
alter event e_test ON
COMPLETION PRESERVE DISABLE;
 
對已經關閉的事件任務進行開啓:
 
alter event e_test ON
COMPLETION PRESERVE ENABLE;

我的實踐:

我想要的是往test數據庫的gpsdemo表定時插入數據:

開始是在MySQL的圖形界面輸入語句:

create event if not exists e_test
on schedule every 30 second starts now()
on completion preserve
do
INSERT INTO gpsdemo (xxx)values (xxx)

出現錯誤:


整了一會兒沒有解決,還好我機智,直接在命令行輸入,如下:

cmd

d:

D:\mysql-5.6.24-win32.1432006610\mysql-5.6.24-win32\bin

進入MySQL的安裝路徑

mysql -u root -p test

test數據庫

password:(輸入密碼)

create event if not exists e_test
on schedule every 30 second starts now()
on completion preserve
do
INSERT INTO gpsdemo (xxx)values (xxx);(記得這個分號)

OK~~~~完成了!!!

2016.8.12北京,上午天兒有點暗,中午下了場大暴雨,奧運到風味的那小段路被淹沒了,分分鐘看海的節奏~

還有三天就放假了~啦啦啦~~~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章