mysql的event事件

应用场景:购物商城发货后15天,自动更改订单状态为已收货mysql

实现方式:event事件sql

实现步骤:
1.检查mysql是否开启了event事件,默认都是关闭状态 SHOW VARIABLES LIKE 'event_scheduler'; 数据库

clipboard.png

2.开启event事件 SET GLOBAL event_scheduler = ON;安全

clipboard.png

3.建立函数函数

clipboard.png

使用存储过程呢,咱们能够定义的一系列sql语句的集合,涉及特定表或其它对象的任务,至于存储过程和函数的区别呢,这里就很少说了,或许以后会专门出一个文章吧!this

4.订单记录,因此入参确定是订单号了spa

clipboard.png

5.接下来,就是要写重点了调试

clipboard.png

这一步骤是先作了订单的校验,校验经过后进行数据修改,把订单状态改成已收货,而且插入收货记录code

6.选择安全性、数据库身份、数据访问等,保存过程名为updateorder,记得点击运行,调试一下哦!
clipboard.png对象

7.而后在你的发货代码中写以下语句

$this->db->setAttribute(PDO::ATTR_EMULATE_PREPARES, true);
$this->db->query('CREATE DEFINER=`root`@`localhost` EVENT `confirmorder'.$ordernumber.'` 
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 15 DAY ON COMPLETION NOT  
PRESERVE ENABLE DO call confirmorder("'.$ordernumber.'");');
$this->db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);

8.每次发货后,就能够看到你的event事件了,注意哦,是One Time的,还能够看到执行时间,我是选择了7分钟,而后到时间去看你的事件,这个事件不见了,没错,执行一次。

clipboard.png

clipboard.png

分享,是为了让本身的技术更扎实,欢迎交流,让咱们共同进步~

相关文章
相关标签/搜索