1.修改配置檔案my.conf 或者my.ini(永久配置)
增加event_scheduler=on
執行show variables like 'event_scheduler';檢視
2.建立定時任務
create event [ifnot exists] event_name
onschedule schedule
[oncompletion [not] preserve]
[enable | disable]
[comment 'comment']
do sql_statement;
簡單列子:
create event e_test_0925
on schedule every 1 second
on completion preserve enable
do insert into test value('1');
3.案例
-- 修改裝置心跳狀態執行sql指令碼
-- use ecologictest;
use ecologic;
-- 開啟event
set global event_scheduler='on';
show variables like 'event_scheduler';
-- 更新心跳狀態儲存過程
delimiter
drop procedure if exists update_device_heart_state_proce;
create procedure update_device_heart_state_proce() -- 更新裝置心跳狀態儲存過程
begin
declare t_error integer default 0;
declare continue handler for sqlexception set t_error=1;
start transaction; -- 開啟事務
-- 定時指令碼需要執行的sql
update info_device set heart_state=2 where heart=1 and timestampdiff(minute,heart_last_time,now())>15;
update info_device set heart_state=3 where heart=1 and timestampdiff(minute,heart_last_time,now())>30;
if t_error=1 then
rollback;
else
commit;
end if;
select t_errot; -- 返回標識位的結果集
end;
delimiter;
-- 建立呼叫儲存過程事件
drop event if exists update_device_heart_state_event;
create event update_device_heart_state_event
on schedule every 60 second
on completion preserve disable
do call update_device_heart_state_proce();
-- 開啟事件
alter event update_device_heart_state_event on completion preserve enable;
-- 關閉事件
-- alter event update_device_heart_state_event on completion preserve disable;
-- 檢視自己建立的event
-- select * from mysql.`event`;
mysql 定時任務 生效 mysql定時任務
1.檢視是否開啟定時策略 show variables like event sche 若出現如下圖,則此時是關閉狀態 開啟定時策略 重啟無效 set global event scheduler 1 則需要在配置檔案my.ini的設定 重啟有效 mysqld event scheduler on ...
mysql 定時任務
檢視event是否開啟 複製 如下 show variables like sche 將事件計畫開啟 複製 如下 set global event scheduler 1 建立儲存過程test 複製 如下 create procedure test begin update examinfo set...
mysql定時任務
show variables like event scheduler 開啟定時任務 set global event scheduler on 定時更新 on completion not preserve 表示當事件不會再發生的情況下,刪除事件 注意特定時間執行的事件,如果設定了該引數,執行完畢...