我有这个存储过程。例如,我如何以5秒的间隔运行它?像清除时间戳超过一天的数据的例程?
DROP PROCEDURE IF EXISTS `delete_rows_links`
GO
CREATE PROCEDURE delete_rows_links
BEGIN
DELETE activation_link
FROM activation_link_password_reset
WHERE TIMESTAMPDIFF(DAY, `time`, NOW()) < 1 ;
END
GO
4条答案
按热度按时间hjzp0vay1#
我使用了这个查询,它对我有效:
ds97pgxw2#
如果您对db解决方案持开放态度:您可以设置一个cron作业,该作业运行一个脚本,该脚本本身将调用该过程。
x6yk4ghg3#
要创建cronjob,请执行以下步骤:
运行这个命令:设置全局事件调度程序=on;
如果错误1229(hy000):变量“event\u scheduler”是全局变量,应使用set global:important设置
只能在服务器启动时将事件计划程序设置为禁用。如果事件调度程序处于打开或关闭状态,则无法在运行时将其设置为禁用。另外,如果事件调度程序设置为“启动时禁用”,则无法在运行时更改事件调度程序的值。
要禁用事件计划程序,请使用以下两种方法之一:
作为启动服务器时的命令行选项:
在服务器配置文件(my.cnf或windows系统上的my.ini)中:包括服务器将读取的行(例如,在[mysqld]节中):
阅读mysql文档了解更多信息。
j91ykkif4#
您可以使用mysql调度程序每5秒运行一次。你可以在http://dev.mysql.com/doc/refman/5.1/en/create-event.html
从未使用过,但我希望这能奏效: