0Day Forums
How to schedule a stored procedure in MySQL - Printable Version

+- 0Day Forums (https://0day.red)
+-- Forum: Coding (https://0day.red/Forum-Coding)
+--- Forum: Database (https://0day.red/Forum-Database)
+--- Thread: How to schedule a stored procedure in MySQL (/Thread-How-to-schedule-a-stored-procedure-in-MySQL)



How to schedule a stored procedure in MySQL - vivifydg - 07-20-2023

I have this stored procedure. How can I run this for example with intervals of 5 seconds? Like a routine for eliminate data with a time-stamp older than one day?

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



RE: How to schedule a stored procedure in MySQL - briefs554842 - 07-20-2023

If you're open to out-of-the-DB solution: You could set up a cron job that runs a script that will itself call the procedure.


RE: How to schedule a stored procedure in MySQL - intercolonizations147406 - 07-20-2023

You can use mysql scheduler to run it each 5 seconds. You can find samples at

[To see links please register here]


Never used it but I hope this would work:

CREATE EVENT myevent
ON SCHEDULE EVERY 5 SECOND
DO
CALL delete_rows_links();


RE: How to schedule a stored procedure in MySQL - hoarding266278 - 07-20-2023

I used this query and it worked for me:

CREATE EVENT `exec`
ON SCHEDULE EVERY 5 SECOND
STARTS '2013-02-10 00:00:00'
ENDS '2015-02-28 00:00:00'
ON COMPLETION NOT PRESERVE ENABLE
DO
call delete_rows_links();




RE: How to schedule a stored procedure in MySQL - idealogies528041 - 07-20-2023

In order to create a cronjob, follow these steps:

1. run this command : SET GLOBAL event_scheduler = ON;

2. If ERROR 1229 (HY000): Variable 'event_scheduler' is a GLOBAL
variable and should be set with SET GLOBAL:
mportant

It is possible to set the Event Scheduler to DISABLED only at server startup. If event_scheduler is ON or OFF, you cannot set it to DISABLED at runtime. Also, if the Event Scheduler is set to DISABLED at startup, you cannot change the value of event_scheduler at runtime.

To disable the event scheduler, use one of the following two methods:


1. As a command-line option when starting the server:

--event-scheduler=DISABLED


2. In the server configuration file (my.cnf, or my.ini on Windows systems):
include the line where it will be read by the server (for example, in a [mysqld] section):

event_scheduler=DISABLED

Read MySQL [documentation](

[To see links please register here]

) for more information.


DROP EVENT IF EXISTS EVENT_NAME;
CREATE EVENT EVENT_NAME
ON SCHEDULE EVERY 10 SECOND/minute/hour
DO
CALL PROCEDURE_NAME();