mysql定時任務

2021-09-27 10:22:30 字數 1979 閱讀 1483

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 表示當事件不會再發生的情況下,刪除事件 注意特定時間執行的事件,如果設定了該引數,執行完畢...