MySql 事件管理 存储过程创建

最近弄一个项目,需要自动监测客户最近90天内是否有变化,若没有变化,这修改客户状态。

本来想用quartz来弄的,想来一下还是觉得太麻烦了,就看了下mysql的存储过程以及事件的创建。


下面分析下quartz以及使用sql 存储过程的优缺点:

quartz优点:1、可以通过在web application层进行管理,而不需要操作数据库(若无数据库权限的话,还是得选择quartz)。

直接使用存储过程优点:1、简单,快速!若使用quartz,需要编写配置文件,修改web.xml配置,并手动添加数据查询以及更新语句。而是要存储过程则只需要简单的几句sql语句即可。


下面详细介绍下MySql处理方式的过程:

1、开启mysql event_scheduler功能。

    使用"select @@event_scheduler;"语句查看mysql是否开启了event_scheduler。若没有启动,则使用mysql语句“SET GLOBAL event_scheduler = ON; ”开开启该功能。注:默认情况下,mysql服务是不会启动该功能的。 当然,有另外一种方法是修改mysql的配置文件,修改完后再重新启动mysql即可。

2、添加事件。

    本人使用Navicat Lite来管理mysql数据库,因此可以很方便的通过界面来创建新的事件。sql语句如下:

    CREATE EVENT `NewEvent`
    ON SCHEDULE EVERY 01:00:00 DAY
    ON COMPLETION NOT PRESERVE
    ENABLE
    DO
        call releaseCustomer();

3、添加存储过程:

    由于我这个只需要对一个表进行操作,因此整个业务都可以用一个sql语句来完成。

    CREATE DEFINER=`root`@`localhost` PROCEDURE `releaseCustomer`()
    MODIFIES SQL DATA
BEGIN
    #Routine body goes here...
    update t_gici_customer set CUSTOMER_CONTACTOR_STATE = '2', gici_sales = null
    where date_sub(curdate(), interval 90 day) >= last_visit_date and CUSTOMER_CONTACTOR_STATE in ('0','1') ;
END


详细的创建事件以及创建存储过程的用法,可以参照mysql的参考手册。

  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值