Mysql 创建一个存储过程,定时删除微信小程序formid

admin 2019-08-20 AM 53℃ 0条

timg.jpg

需求是要求自动删除从2019-01-24 16:50:00开始过期得微信小程序formid。formid会有一个过期时间,只需要将对应得过期时间小于当前时间得删除即可。当然这个需求用程序轮询也可以实现。

是否开启计划任务

SHOW VARIABLES LIKE '%event_sche%';

将事件计划开启/关闭(1/0)

SET GLOBAL event_scheduler = 1;

关闭/开启事件任务(DISABLE/ENABLE)

ALTER EVENT eventName ON COMPLETION PRESERVE DISABLE;

查看事件任务 :

SHOW EVENTS ;

创建一个存储过程 : 删除过期时间小于当前时间的

DELIMITER //
DROP PROCEDURE IF EXISTS delete_formid//
CREATE PROCEDURE delete_formid() 
BEGIN
DELETE FROM xt_dc_formid WHERE expire_in < unix_timestamp(now());
END//

设置定时任务调用这个存储过程(从2019.1.24 16点50每10秒执行一次)

DELIMITER //
DROP EVENT IF EXISTS delete_formid//
CREATE EVENT delete_formid
ON SCHEDULE EVERY 10 second STARTS TIMESTAMP '2019-01-24 16:50:00'
ON COMPLETION PRESERVE
DO
BEGIN
CALL delete_formid();
END//

至此,mysql会生成一个自定义函数:delete_formid()

CREATE DEFINER=`root`@`%` PROCEDURE `delete_formid`()
BEGIN
DELETE FROM xt_dc_formid WHERE expire_in < unix_timestamp(now());
END
标签: mysql, 存储过程, formid

非特殊说明,本博所有文章均为博主原创。

评论啦~