Mysql 中的事件 定時任務

2021-09-08 04:20:04 字數 2373 閱讀 8942

一組sql集,用來執行定時任務,跟觸發器很像,都是被動執行的,事件是因為時間到了觸發執行,而觸發器是因為某件事件(增刪改)觸發執行;

檢視是否開啟:

如果顯示off,則輸入以下語句開啟:

首先、新建user表:

-- ----------------------------

-- table structure for `user`

-- ----------------------------

drop table if exists `user`;

create table `user` (

`id` bigint(20) not null auto_increment,

`name` varchar(200) not null,

`address` varchar(500) not null,

`addtime` datetime not null,

primary key (`id`)

) engine=innodb default charset=utf8;

然後、新建事件,有兩種事件型別,乙個是間隔觸發,另乙個是特定事件觸發。引數說明:definer:建立者;

on completion [not] preserve :表示當事件不會再發生的情況下,刪除事件(注意特定時間執行的事件,如果設定了該引數,執行完畢後,事件將被刪除,不想刪除的話可以設定成on completion preserve);

enable:表示系統將執行這個事件;

-- ----------------------------

-- event structure for `event_minute`

-- ----------------------------

drop event if exists `event_minute`;

delimiter ;;

create definer=`root`@`localhost` event `event_minute` on schedule every 1 minute starts '2016-01-17 14:49:43' on completion not preserve enable do

begin

insert into user(name, address,addtime) values('test1','test1',now());

insert into user(name, address,addtime) values('test2','test2',now());

end;;

delimiter ;

引數說明:definer:建立者;

on completion [not] preserve :表示當事件不會再發生的情況下,刪除事件(注意特定時間執行的事件,如果設定了該引數,執行完畢後,事件將被刪除,不想刪除的話可以設定成on completion preserve);

enable:表示系統將執行這個事件;

-- ----------------------------

-- event structure for `event_at`

-- ----------------------------

drop event if exists `event_at`;

delimiter ;;

create definer=`root`@`localhost` event `event_at` on schedule at '2016-01-17 15:30:00' on completion not preserve enable do

begin

insert into user(name, address,addtime) values('at','at',now());

end;;

delimiter ;

檢視結果,結果正確:

Mysql 中的事件 定時任務

一組sql集,用來執行定時任務,跟觸發器很像,都是被動執行的,事件是因為時間到了觸發執行,而觸發器是因為某件事件 增刪改 觸發執行 檢視是否開啟 如果顯示off,則輸入以下語句開啟 首先 新建user表 table structure for user drop table if exists us...

mysql 事件 定時任務

1 檢視是否開啟事件功能 show variables like event scheduler 2 開啟事件功能 方法一 修改環境變數 set global event scheduler on 方法二 修改my.cnf event scheduler 1 或者on3 檢視排程器執行緒和事件 sh...

Mysql編寫定時任務事件

場景 例如 某系統,使用者每天只能擁有一次的 機會,抽過後當天就不可再抽,但是過了24 00點後使用者就重新擁有一次 機會。像這種需要資料庫定時對某個字段進行更新操作的任務,完全可以通過資料庫本身的事件機制進行操作,而伺服器端也不需要用額外的 進行這種監控定時的操作。mysql 本文討論的是mysq...