mysql 事件

 

 

在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。。。。。。。。。。。。。。

 

 

你可能感兴趣的:(mysql,事件,自动化)