Авторизованный запрос в mysql

Можно ли создать хранимую процедуру, которая запускается каждую ночь 11 вечера, проверить таблицу, если какая-либо запись была изменена за последние шесть месяцев. Если какая-то запись изменена за последние шесть месяцев, я должен удалить ее из таблицы. Это должно выполняться автоматически без использования какого-либо внешнего языка.

Ответ 1

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);

ИЛИ для хранимой процедуры.

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

Ответ 3

Создайте событие, подобное ниже

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

Ответ 4

Вы также можете написать script, который обрабатывает ваши данные в Python, Perl, PHP и т.д.

После этого просто установите запись cron с помощью crontab -e и добавьте следующую строку:

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

Если вы не укажете 2>&1 >/dev/null, вы получите электронную почту с результатами выполнения.