后台自动执行MySQL语句

Execute MySQL statement in the background automatically

我想从 MySQL table 中删除超过 3 分钟未更新的记录。如何在后台设置计时器来管理它而不被java中的事件或方法调用?这可能吗?

DELETE FROM bus WHERE created_at < (NOW() - INTERVAL 5 MINUTE) 

编辑

误读了您的问题 - 下面描述了如何使用 Java 来安排任务,而不是独立于 Java 层

您可以通过组合使用 TimerTimerTask 来实现此目的。它们一起形成了一个非常简单的调度工具。 Timer 计划 TimerTasks 定期发生。

网上有很多不错的教程:for example

correctly pointed out, you can use CREATE EVENT.

CREATE EVENT event_bus_delete
   EVERY 5 MINUTE
   DO 
      DELETE FROM bus WHERE created_at < (NOW() - INTERVAL 5 MINUTE);

在 MySQL 5.1.6 中添加了事件支持。但是,MySQL 事件调度程序默认情况下不是 运行,需要启用才能使事件正常工作。

请参阅有关如何启用 MySQL 事件调度程序的 this Whosebug answer or How to Configure MySQL Event Scheduler 文章并确保它是 运行。

您可以确保调度程序在 MySQL 启动时启动,使用 MySQL 配置文件中的命令行选项 --event-scheduler=ONsetting event_scheduler=ON(my.cnf 或 Windows 上的 my.ini)。

或者,您可以从 MySQL 命令行启动调度程序:

SET GLOBAL event_scheduler = ON;