How to schedule a stored procedure in MySQL

后端 未结 4 1202
抹茶落季
抹茶落季 2020-11-27 12:08

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?

<         


        
相关标签:
4条回答
  • 2020-11-27 12:11

    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 for more information.

       DROP EVENT IF EXISTS EVENT_NAME;
        CREATE EVENT EVENT_NAME
       ON SCHEDULE EVERY 10 SECOND/minute/hour
       DO
       CALL PROCEDURE_NAME();
      
    0 讨论(0)
  • 2020-11-27 12:14

    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();
    
    0 讨论(0)
  • 2020-11-27 12:15

    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.

    0 讨论(0)
  • 2020-11-27 12:27

    You can use mysql scheduler to run it each 5 seconds. You can find samples at http://dev.mysql.com/doc/refman/5.1/en/create-event.html

    Never used it but I hope this would work:

    CREATE EVENT myevent
        ON SCHEDULE EVERY 5 SECOND
        DO
          CALL delete_rows_links();
    
    0 讨论(0)
提交回复
热议问题