Heim > Fragen und Antworten > Hauptteil
mysql
So löschen Sie Daten automatisch nach einer bestimmten Zeit
Ich verwende
java
, um eine To-Do-Liste zu erstellen undjava
做一个待办事项,用mysql
um eine Datenbank zu erstellen
Ich möchte abgeschlossene Zeilen am nächsten Tag automatisch löschen
Ergänzung
Vergleichen Sie den von mir festgelegten Zeitstempel mit der aktuellen Zeit und löschen Sie ihn dann.
Da ich se verwende, wird die Datenbank nur geöffnet, wenn sie verwendet wird.Entschuldigung, ich habe die Frage nicht klar formuliert.
迷茫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均可,利用操作系统的任务调度