mysql学习心得——事件
注意
:目前对数据库的操作基本都已经用客户端Navicat直接操作了,直接的SQL语句的操作不够简便,为更好的加快学习进度,下文全部用客户端做功能介绍。
含义 :周期性的执行某一个命令,存储过程或者SQL语句时,需要用到事件功能
含义解读 :事件多用在对产生数据的及时处理,举例:当库存资源被用户占用,在无法判断用户操作行为的前提下,不能立马释放库存资源,此时在指定时间(比如30分钟)到了的时候可以执行事件处理,及时释放库存资源。
使用步骤 :
连接数据库成功后,选择“事件”,单击“新建事件”,此时“SQL预览”里可以看到SQL语法如下:
CREATE EVENT `NewEvent`
ON SCHEDULE AT CURRENT_TIMESTAMP
ON COMPLETION NOT PRESERVE
ENABLE
DO (一个命令,存储过程或者SQL语句)
;
语法介绍 :
DEFINER: 定义事件执行的时候检查权限的用户,比如:licai_test@%,也可以不设置,系统自行判断你登录的数据库用户。
ON SCHEDULE : 定义执行的时间和时间间隔,时间调度分两中AT和EVERY,
AT:从当前时间(CURRENT_TIMESTAMP)+间隔时间(INTERVAL)后开始 启动这个事件,可选的时间参数有YEAR、 QUARTER(季度)等。
EVERY:每隔多少时间启动事件,STARTS定义首次开始启动的时间,ENDS定义永久停止事件的时间,时间间隔同AT
ON COMPLETION [NOT] PRESERVE: 定义事件是一次执行还是永久执行,默认为一次执行,即NOT PRESERVE。
ENABLE | DISABLE | DISABLE ON SLAVE: 定义事件创建以后是开启还是关闭,以及在从上关闭。如果是从服务器自动同步主上的创建事件的语句的话,会自动加上DISABLE ON SLAVE。
COMMENT 'comment': 定义事件的注释
举例 :
CREATE (DEFINER=`test`@`%` ) EVENT ( `DEAL_ORDER_EVENT`) ON SCHEDULE( EVERY 30 MINUTE STARTS '2016-10-19 09:06:00') ON COMPLETION PRESERVE ENABLE DO( CALL P_DEAL_OVERDUE_ORDER())
解释:括号里的都是参数,可变动;本存储过程的含义是:自2016年10月19日 9时6分开始每隔30分钟执行存储过程 P_DEAL_OVERDUE_ORDER()一遍;
测试适用点:清除测试滞留的垃圾数据时,可以适用事件功能,属于高级技能。
温馨提示:仅支持mysql 5.1及以上版本。
含义 :周期性的执行某一个命令,存储过程或者SQL语句时,需要用到事件功能
含义解读 :事件多用在对产生数据的及时处理,举例:当库存资源被用户占用,在无法判断用户操作行为的前提下,不能立马释放库存资源,此时在指定时间(比如30分钟)到了的时候可以执行事件处理,及时释放库存资源。
使用步骤 :
连接数据库成功后,选择“事件”,单击“新建事件”,此时“SQL预览”里可以看到SQL语法如下:
CREATE EVENT `NewEvent`
ON SCHEDULE AT CURRENT_TIMESTAMP
ON COMPLETION NOT PRESERVE
ENABLE
DO (一个命令,存储过程或者SQL语句)
;
语法介绍 :
DEFINER: 定义事件执行的时候检查权限的用户,比如:licai_test@%,也可以不设置,系统自行判断你登录的数据库用户。
ON SCHEDULE : 定义执行的时间和时间间隔,时间调度分两中AT和EVERY,
AT:从当前时间(CURRENT_TIMESTAMP)+间隔时间(INTERVAL)后开始 启动这个事件,可选的时间参数有YEAR、 QUARTER(季度)等。
EVERY:每隔多少时间启动事件,STARTS定义首次开始启动的时间,ENDS定义永久停止事件的时间,时间间隔同AT
ON COMPLETION [NOT] PRESERVE: 定义事件是一次执行还是永久执行,默认为一次执行,即NOT PRESERVE。
ENABLE | DISABLE | DISABLE ON SLAVE: 定义事件创建以后是开启还是关闭,以及在从上关闭。如果是从服务器自动同步主上的创建事件的语句的话,会自动加上DISABLE ON SLAVE。
COMMENT 'comment': 定义事件的注释
举例 :
CREATE (DEFINER=`test`@`%` ) EVENT ( `DEAL_ORDER_EVENT`) ON SCHEDULE( EVERY 30 MINUTE STARTS '2016-10-19 09:06:00') ON COMPLETION PRESERVE ENABLE DO( CALL P_DEAL_OVERDUE_ORDER())
解释:括号里的都是参数,可变动;本存储过程的含义是:自2016年10月19日 9时6分开始每隔30分钟执行存储过程 P_DEAL_OVERDUE_ORDER()一遍;
测试适用点:清除测试滞留的垃圾数据时,可以适用事件功能,属于高级技能。
温馨提示:仅支持mysql 5.1及以上版本。