注销账号功能(账号保留一个月)

数据库实现

-- 1、打开调度(这样才会自动调用事件)
-- 查询方法(注意: -- 和查询之间有个空格,否则不能被识别为注释)
select @@event_scheduler

-- 设置方法(开启)
SET @@global.event_scheduler = ON;
-- 设置方法(关闭)
-- SET @@global.event_scheduler = OFF;

-- 2、创建一个存储过程
/*
DATE(发生时间): 是某个事件的日期部分

DATE(DATE_SUB(NOW(),INTERVAL 30 DAY)):从当前的日期减去2天

某一个事件比现在的日期减去30天还小,则说明需要删除了

*/
USE `bbs-pro`
 
DROP PROCEDURE IF EXISTS auto_del_30;

CREATE PROCEDURE auto_del_30()
    BEGIN  
      DELETE FROM `user` WHERE DATE(deleteData)<=DATE(DATE_SUB(NOW(),INTERVAL 30 DAY)) and state=2;
    END

-- 3、创建事件
CREATE EVENT IF NOT EXISTS `even_auto_del_30` 

ON SCHEDULE EVERY 1 DAY STARTS '2022-01-10 01:00:00' 
-- 从2022.1.10开始,每天删掉30天前的数据
ON COMPLETION PRESERVE DO  CALL auto_del_30();

-- 4、显示事件:
select * from  `bbs-pro`.event;
select * from information_schema.events

show processlist;
show variables like 'even_auto_del_30';

-- 查询事件
show variables like 'event_scheduler'
-- 打开事件
set global event_scheduler = on


select * from even_auto_del_30

-- 5、关闭even_auto_del_30事件
ALTER EVENT even_auto_del_30 ON COMPLETION PRESERVE DISABLE;

-- 6、开启even_auto_del_30事件:
ALTER EVENT even_auto_del_30 ON COMPLETION PRESERVE ENABLE;

user表关键信息

 后端实现

 

猜你喜欢

转载自blog.csdn.net/xingchenyv/article/details/122446063