2012-12-14 13 views
10

È possibile eseguire una stored procedure che viene eseguita ogni sera alle 11 pm, verificare nella tabella se qualsiasi record viene modificato per gli ultimi sei mesi, Se alcuni record vengono modificati per gli ultimi sei mesi, è necessario eliminarlo da tavolo. Questo deve essere eseguito automaticamente senza l'uso di alcuna lingua esterna.Interrogazione esecuzione automatica in mysql

risposta

14
CREATE EVENT IF NOT EXISTS `my_old_data_cleaner_event` 
ON SCHEDULE EVERY 23 DAY_HOUR 
COMMENT 'Clean up Service Start at 11:00PM daily!' 
DO DELETE FROM my_table WHERE created_date < (NOW() - INTERVAL 1 MONTH); 

OR per stored procedure.

CREATE EVENT IF NOT EXISTS `my_old_data_cleaner_event` 
ON SCHEDULE EVERY 23 DAY_HOUR 
DO CALL my_sp_cleanup_old_data(); 
+0

Grazie mille .... puoi dire che eseguiamo questa query senza chiamare da nessuna lingua esterna. –

+0

è un mio errore se creiamo un evento in MySQL verrà eseguito automaticamente rit. Grazie –

0

Crea un evento come di seguito

CREATE EVENT e_daily 
    ON SCHEDULE 
    EVERY 1 DAY 
DO 
    BEGIN 
    DELETE FROM tableA WHERE DATE(`yourtimestamp`) <(CURDATE() - INTERVAL 6 MONTHS); 
    END 
0

È inoltre possibile scrivere uno script che elabora i dati in Python, Perl, PHP, ecc

Dopo di che, è sufficiente l'ingresso cron configurazione utilizzando crontab -e e aggiungere seguente riga:

0 23 * * * /path/to/my/script.pl 2>&1 >/dev/null 

Se non si specifica 2>&1 >/dev/null , riceverai un'email con i risultati dell'esecuzione.

Problemi correlati