在SQLServer中 定时执行一个计划 使用的是SQLServer代理引擎 ,
但是在MySQL 中是没有这样的一个引擎的 供使用,但是如何定时执行一个计划呢
其实在MySQL中有一个对象可以完整这样的功能!--------mysql 事件
下面是本人对事件的一些简单总结。
要使用MySQL中的事件功能,必须先开启 一个全局变量
show variables like '%event_scheduler%' 或 select @@event_scheduler
默认情况下 event_scheduler 是处于Off ,要使用事件功能 ,首先必须先开启刚变量。
开启语句如下: set Global event_scheduler =1
开启上面的变量之后,就可以创建事件了.
语法如下 :
create event event_name
on schedule Schedule_TIME
on completion [not] preserve
[enable|disable|disable on Slave]
comment '时间说明'
do
evnet_body;
说明:
event_name:事件名
Schedule_TIME:执行时间
on completion [not] preserver: 事件执行完后是否自动删除事件。
默认为not preserve ,不保持,即,事件执行完之后 自动删除事件
enable:启用事件
disable:禁用事件
disable on slqve:在slave上禁用事件
comment:事件说明
event_body:事件要执行的语句。当event_body中的sql语句多余一条时 ,
需要用begin end ,将event_body中执行的sql语句放在begin end 中
下面是事件的具体案例:
在规定的时间点上执行事件,执行完中,自动删除事件
delimiter $$
create event event_test
on schedule at '2013-12-12 00:00:00'
on completion not preserve
do
truncate table table ;
$$ delimiter ;
10分钟以后执行执行,并且执行完后自动删除事件
delimiter $$
create event event_test
on schedule current_timestamp + interval 10 minute
on completion not preserve
do
truncate tabel test;
$$ delimiter ;
每间隔一段时间执行一次事件,执行完事件之后不删除事件
delimiter $$
create event event_test
on schedule every 1 week
on completion preserve
do
truncate table test;
$$ delimiter ;
以上就是事件基本介绍了!
over。。。。。。。。。。。。。。