项目情况:
今天项目中涉及到一个注册问题,注册的校验码需要定时删除。(后来需求变了,采用SpringBoot自带的方法来执行定时任务)
说明:我在这里是根据注册记录表中的一个更新时间字段和数据库当前时间进行比较,得出该记录存在的时间。使用timstampdiff函数可以解决该问题。
具体sql如下:
#开启event_scheduler sql指令
SHOW VARIABLES LIKE '%event_scheduler%';SET GLOBAL event_scheduler = ON;
#定义存储过程
DELIMITER |
DROP PROCEDURE IF EXISTS delete_registcode |
CREATE PROCEDURE delete_registcode()
BEGIN
IF EXISTS(SELECT id FROM registinfo WHERE TIMESTAMPDIFF(MINUTE,lastupdatetime,NOW()) >= 15 ) THEN
-- UPDATE device SET state = FALSE WHERE id NOT IN (SELECT device_id FROM orderdetail WHERE NOW() < endtime);
DELETE from registinfo where id in (select id from (SELECT id FROM registinfo WHERE TIMESTAMPDIFF(MINUTE,lastupdatetime,NOW()) >= 15)a ) ;
END IF;
END
|
DELIMITER;