mysql
怎么在规定时间之后自动删除数据
我在用
java
做一个待办事项,用mysql
做数据库
想实现第二天自动删除已完成的行
补充
根据我设置的时间戳跟当前时间进行比较,再进行删除
因为我是用se,数据库用时才开的很抱歉,没有写清楚问题。
迷茫2017-06-16 09:21:28
可以给mysql建个定时任务
一、查看event是否开启
show variables like '%sche%';
开启event_scheduler
set global event_scheduler =1;
二、创建存储过程test
CREATE PROCEDURE test ()
BEGIN
update userinfo set endtime = now() where id = '110';
END;
三、创建event e_test
create event if not exists e_test
on schedule every 30 second
on completion preserve
do call test();
每隔30秒将执行存储过程test
关闭事件任务
alter event e_test ON COMPLETION PRESERVE DISABLE;
开户事件任务
alter event e_test ON COMPLETION PRESERVE ENABLE;
PHP中文网2017-06-16 09:21:28
用java解决
@schedule(cron = "0 0 0 * ?" ) 每天零点执行一次定时任务
上面0和星号之间少了一个星号,连打两个星号会被屏蔽
世界只因有你2017-06-16 09:21:28
我倾向于用脚本去操作,但是mysql也提供了自身的存贮过程,其本质也是些简单的mysql语句去执行的。
我在网上查了 存储过程的优缺点,然后你想想脚本的优缺点,用哪种方式,自行选择吧!
存储过程优缺点
PHP中文网2017-06-16 09:21:28
1.mysql自己的任务调度Event
2.java 应用层的任务调度,推荐QuartZ
3.写脚本,Node,python均可,利用操作系统的任务调度