È 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
10
A
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();
3
si può ottenere con l'evento mysql scheduler--
http://dev.mysql.com/doc/refman/5.1/en/events.html
dettaglio blog: http://goo.gl/6Hzjvg
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.
Grazie mille .... puoi dire che eseguiamo questa query senza chiamare da nessuna lingua esterna. –
è un mio errore se creiamo un evento in MySQL verrà eseguito automaticamente rit. Grazie –